Ansible 2.14のshell:warnでハマった
“ns-lab BB”のサーバ管理にAnsibleを多用しているのは言うまでもないが、
サーバをメンテナンスするタイミングを逃して実行環境を放置していた。
昨日、メンテナンスの時間を確保出来たので、
KVMホストのメンテと一緒にAnsible実行環境のアップグレードしたのだが、
Ansible 2.14.2へ変わったのがマズかった。
一部のプレイブックでは以前作成した管理用スクリプトをshellモジュール経由で叩く様にしており、
その中で警告メッセージを減らす為にshell:warnの設定を入れていた。
しかし、Ansible 2.14でshell:warnが削除されたのでエラーで失敗する様になった。
Starting in 2.14, shell and command modules will no longer have the option
to warn and suggest modules in lieu of commands.
The warn parameter to these modules is now deprecated and defaults to False.
Similarly, the COMMAND_WARNINGS configuration option is also deprecated and defaults to False.
These will be removed and their presence will become an error in 2.14.
|
コレに気づかず、アップデート後初のAnsible実行でエラーの嵐が発生。
普段動いていた物が動かなくなったので焦ったが、独自に組んでいたログ取得からデバッグを開始。
表題の通り、shell:warnの所で処理が軒並み停止する事がわかった。
Ansibleの更新履歴を追いかけた所、v2.11のDeprecatedリストにそのまま載っていた。
実行時もwarnオプションが存在しないから削除する様にエラーが出ていたので予想はついていたが、
更新履歴はちゃんと読まないとハマる事があると改めて実感した出来事だった。
………
自宅鯖だからこそ読まずにぶっつけ本番をした結果ハマった原因だが、
流石に自宅鯖で全部追いかけるのは大変なのと、
趣味の範疇だからこそぶっつけ本番チャレンジ出来るのがメリットなので、
敢えてやり方は変えず今回の事も備忘録にしておこうと思う。