🎄
ansible 研究 2024/12/25
非ansible管理サーバ畑を耕していく
- ansible=python というくらいに、pythonが入っていないと動かない。
- pythonは 2.7から3.x 移行時に苦労させられた記憶があって入れたくなかったが、自作スクリプトも pythonに依存し始めた関係で ''Resistance is futile'' と。
- FreeBSD-jailで bastille を多用し始めたのはいいが、 初期状態で色々不具合を放置していることがある。
- 最近多いのは pkg を完全に封入したり、cloned-jail での リモート疎通の不完全な jail
- 疎通が悪いと pkg コマンドで失敗する。 repo をローカルに作るのが理想だが、長期に渡る構築による問題で アーキテクチャ、OSヴァージョン、pkg に入れるべきものが多すぎで poudrirere の運用がつらい。
本日の結論:
- FreeBSD での Ansible 実践ガイドラインを書いた人間はおそらく実戦(とりわけ
手垢で汚れきったオンプレミスやJAIL絡み)を経験していないことが明らかであって、事前準備が多く必要である。 - まずは、インベントリを揃えることから。 hostsファイルに兎に角書き連ねること。
- ターゲットに ssh 公開鍵を配布していく。
- ~/.ssh/config において、 ProxyJump を使うゲートウェイを決められる管理サイトの記述をする。踏み台サーバ hogehoge → ProxyJump hogehoge である。
- ~/.ssh/config で、
Host *.subdom.dom.
となっているものは、全て ProxyJump 対象となるが、その際は踏み台サーバで、何でも良いから名前解決すること。 IPv4アドレスなんかで管理するのはやめなさい(to strnh)
IPv6で管理し始めているからもう /etc/hosts が汚いとか文句を言うな
- FreeBSD-JAILでの 外部疎通を観るのに ping は使わない。 allow_rawsockets; が書かれていないことが多々あるから、次のワンライナーを使え。これによって、名前解決+NAT設定の2つが整ってないものが見つかる。
ansible -m raw -a "fetch http://www.google.co.jp/ -o - >/dev/null " -i hosts_not_exists_python all 2>&1 | grep FAIL
- 上記の ansible スクリプト処理で抽出できるホスト名が、今後の作業グループに入っているのを避ける。
- ansible -m ping を通すために raw モジュールで行う必要のある pkg install -f python が失敗するし、そういう処理は時間は収束に嫌に時間を食われてしまう。これらは個別に処理するか、サイト別にゴリゴリとワンライナーを
書くのがよかろう。
Discussion