🌧️
ansible 研究 2025/01/03
letsencrypt で取得している certを調べる
-
ansible を導入する以前からの letsencrypt 関連を漸進的にAnsible管理へ移行しようと考える。そうなると、「0から letsencrypt アカウントを作るところからスタート」の モジュールを使うことが難しい
-
Ansibleで全てが完結できれば良いのだが、ターゲットOSがRHELでもないと~
自分が居なくなっても~^H^H^H基本的にサポートがないので、いつでも撤退できるリスクヘッジを考えた運用にせざる得ない。 → 純なAnsible利用ではなく、多少「冪等性」が失われても実用性に優るスクリプトを突っ込む他ない。 -
今回のお題は「スクリプトを突っ込んで動くか見る」である。
-
例によって、コンセプトのみメモ書きが基本。些末にすぎる。
copy モジュールでターゲットにスクリプトを持ち込む
#!/bin/sh
cd /usr/local/etc/letsencrypt/live
ls -1 | grep -v README | awk '{print "openssl verify -CAfile " $1"/chain.pem "$1"/cert.pem "}' | sh -x
* ⬆ ターゲットOSがFreeBSDであると仮定しているので、インベントリも freebsdのみに限る(というか、それ以外のOSを扱ってはいないが)
- ansible.builtin.copy は、 option を入れないと設定は常に「安全側に倒れている」ので、
- 実行属性:なし
- owner: login に使った owner = (sshアクセスする ほとんどのシステムで)root ではない
- 設定さえすれば実行できるが、何も設定しないと「ただのテキストファイル」で Permission Errorになる。
- スクリプトを持ち込むリモートでの「砂場」は絶対パスが良い。これもおそらくは安全を企図する。
- 相対パスでテストした事例をどこかで読んだ。 てくなべ:今回もお世話になった。→
https://tekunabe.hatenablog.jp/entry/2022/06/23/194400
スクリプト実行
- shell (モジュール?実行文?)で持ち込んだ「リモートにおける絶対パス」を指定する。
- 実行結果は result に入れるだけ。
出力を賞翫する。
- ansible.builtin.debug を使う。
- そろそろ debug じゃない方法があるのかを調べておこう。
Discussion