はじめに
技術開発部の横地です。
先月のことですが、AP Tech Fest という社内勉強会で、Ansible 2.10 と Collection という話をしました。
Ansible 2.10 から Collection の本格運用がはじまったり、Python パッケージとして、 ansible
と ansible-base
に別れたりと、構造的な変化がありました。
これまで Ansible を使っていた方でも「おや?」と思う点もあるかと思います。リリース前からアンテナを張っていましたので、その知見を社内に共有しました。
「今までの Playbook は動くの?」のところではデモも行いました。
内容
資料もアップしてありますので、詳細はこちらをご覧ください。
www2.slideshare.net
内容は以下の通りです。
- Ansible 2.10 の基本
- 標準モジュールが激減
- 基本機能と標準モジュールは ansible-base に
- そもそも Collection とは
- Ansilbe Galaxy による Collection の配布
- なんで ansible-base と collection に分かれた?
- Ansible 2.10 の導入
- インストール
- アップグレード
- Collection の操作
- Collection のインストール
- Collection のアップグレード
- Collection のか確認
- 今までの Playbook は動くの?
- ios_command モジュールでの例
- 動く理由
- FQCN
- 気になるアップデート
- 地味に便利
- タスクのタイムアウトが設定可能に
- 接続時間+処理時間のタイムアウトを指定、デフォルトは0(タイムアウトなし)
- ディレクトリやパスの結合に便利な path_join フィルター追加
- regexp_replace フィルターがマルチラインサポート
- map や selectattr などのあとの | list が不要に
- タスクのタイムアウトが設定可能に
- ちょっと注意
- CONDITIONAL_BARE_VARS のデフォルトが False に変更
- assert モジュールや when で 変数名のみを指定してる場合は注意
- 2.9で [DEPRECATION WARNING]: evaluating 'hogevar' as a bare variable のような警告があったら特に
- True/False が反転することも
- assert モジュールや when で 変数名のみを指定してる場合は注意
- hash_behaviour が Deprecated 扱い
- 代わりに combine フィルターを利用
- CONDITIONAL_BARE_VARS のデフォルトが False に変更
- 地味に便利
- まとめ