[CI/CD]
Ansible
DSLを書くといい感じに実サーバをプロビジョニングできるやつ。お手軽感がある。
- インベントリとPlaybookとRoleの関係
- Ansible - インベントリとPlaybookとRoleの関係 ( Roleの基本と動作例 )
- Playbook が「対象のホスト」をインベントリから得る
- Playbook は「実際の動作部分」をRoleに委ねる
- デプロイ対象をそのまま表現するのがPlaybook、デプロイ処理の共通化がRole、デプロイ対象のIPアドレスの実体がインベントリファイル
- Ansible自体のディレクトリ構成
- 以下は公式サイトのサンプル
- インベントリファイルをyamlで書く場合、`group_vars`や`host_vars`は分ける必要がない
- インベントリファイルを YAML 形式で書く
// 以下の例は hosts ファイルがini形式なのだと思う inventories/ production/ hosts # inventory file for production servers group_vars/ group1.yml # here we assign variables to particular groups group2.yml host_vars/ hostname1.yml # here we assign variables to particular systems hostname2.yml staging/ hosts # inventory file for staging environment group_vars/ group1.yml # here we assign variables to particular groups group2.yml host_vars/ stagehost1.yml # here we assign variables to particular systems stagehost2.yml library/ module_utils/ filter_plugins/ site.yml webservers.yml dbservers.yml roles/ common/ webtier/ monitoring/ fooapp/
雑感
- インベントリファイルはINI形式よりYAMLのほうがいいと思う、特に新しく作成するならば
- サーバの台数が多くなる場合playbookにまとめたほうがいい感じがする
- 逆に2台とか3台ならばRoleだけで事足りる
Ansible逆引きレシピ
他のサイトを勝手にリンクしている
- ikemo memo
- Ansible + Vagrant + CentOS: パスワード認証を有効化する
- Ansible 2.7でyum + with_itemsを使うと出る警告の直し方
- Ansible: command,shellモジュールの結果を検証したい場合
- Ansible: Mavenアーティファクトの利用方法
- Ansible: sudoで環境を引き継ぎたい場合
- Ansible: tarファイルをディレクトリ指定で展開する方法
- Ansible: チェックモードでエラーが起きて停止してしまう場合の修正
- Ansible: ドキュメントをローカルで表示する方法
- Ansible: ルーティング対応
- Ansible: 対象ホストを間違えないようにする方法
- Ansible: 文字列からファイルを作成
- Ansible: 相対パスでシンボリックリンクを作成する方法
- Ansible: 設定の外部ファイルによる管理
- Ansible: 開発環境と本番環境を同じように管理する方法
- Ansibleでリブートする方法