Ansible¶
コンフィグ流し込みツール。
共通設定¶
ansibleを実行するパスにansible.cfgを置けば読み込まれる。
個人的なオススメ
param | description |
---|---|
host_key_checking = False | known_hostsのチェックをしない |
display_skipped_hosts = False | skippedになったタスクを表示しない |
retry_files_enabled = False | タスクが失敗した場合に.retryファイルを作成しない |
log_path = /tmp/ansible.log | 実行ログの出力先 |
ディレクトリ構成のベストプラクティス¶
ディレクトリ作るの面倒なのでこれで。
ansible-galaxy init ${ROLE_NAME}
Inventoryファイルの取り扱い¶
グループ変数なども見やすいのでYAMLの方が気に入っている。(Ansible 2.4以降)
iniの場合¶
[web]
192.168.1.11 HOSTNAME=web01
192.168.1.12 HOSTNAME=web02
YAMLの場合¶
web:
hosts:
192.168.1.11:
HOSTNAME: "web01"
192.168.1.12:
HOSTNAME: "web02"
memo¶
- uriモジュール
return_content
を使用しないと、応答内容までは取得されない- ただし
application/json
の場合はresult.json
から応答内容が確認できる - https://docs.ansible.com/ansible/latest/collections/ansible/builtin/uri_module.html#parameter-return_content
- https://stackoverflow.com/questions/40235550/how-to-inspect-a-json-response-from-ansible-uri-call
- playをまたいだ変数保持
- https://zaki-hmkc.hatenablog.com/entry/2020/04/15/083708
- https://tekunabe.hatenablog.jp/entry/2020/04/16/ansbiel_beyond_play
- ansibleとansible towerの挙動を近いものにするには
set_stats
はansible単体では使えないので、代わりにset_stats
前にregisterした結果をset_fact
するだけのplaybookを挟んでやればいい- start および step
--start-at-task="install packages"
のように、指定したtaskから実行できる--step
を使用すると対話形式で1タスク毎に確認ダイアログが出る
参考¶
- Ansible Dynamic Inventoryスクリプトのサンプルを作ってみた
- 「ansibleを使用してjenkinsをインストールする方法」にインスパイアされて書いてみた
- Ansibleのモジュール開発(基礎編)
- Ansible x napalm x nso 解説・比較パネルディスカッション
最終更新日: 2021-08-09 16:10:00