Ansible 整理的初次体验
在阅读《初次使用Ansible》的同时进行笔记。
前述
第一次使用Ansible(第一章:简介)
第一次使用Ansible(第二章:Playbook入门)
第一次使用Ansible(第三章:主机清单:描述服务器)
第一次使用Ansible(第四章:变量和事实)
第一次使用Ansible(第七章:复杂的Playbook)
第一次使用Ansible(第八章:角色:扩展Playbook)
第一次使用Ansible(第九章:加速Ansible)
第一次使用Ansible(第十章:自定义模块)
Ansible是什么?
構成管理ツール
VagrantやDocker、種々のIaaSなんかも使える
ホスト(サーバ)にエージェントをインストール必要がない(必要なのは以下のみ)
ホスト:Python2.5+ or Python2.4(simplejsonライブラリ必要)
コントロールマシン:Python2.6+
目录结构
-
- 公式ドキュメントのBest Practicesにある例を
Alternative Directory Layout
playbooks/
├── inventories/
│ ├── production/
│ │ ├── hosts.yml # production環境のインベントリファイル
│ │ ├── group_vars/ # production環境のグループ変数設定ファイル群
│ | | ├── group1
│ | | └── group2
│ │ └── host_vars/ # production環境のホスト変数ファイル群
│ | ├── hostname1
│ | └── hostname2
│ └── staging/
│ ├── hosts.yml # staging環境のインベントリファイル
│ ├── group_vars/ # staging環境のグループ変数ファイル群
│ | ├── group1
│ | └── group2
│ └── host_vars/ # staging環境のホスト変数ファイル群
│ ├── hostname1
│ └── hostname2
├── library/ # カスタムモジュール
├── filter_plugins/ # フィルタープラグイン
├── site.yml # マスターplaybook
├── webservers.yml # webserver層のplaybook
├── dbservers.yml # dbserver層のplaybook
└── roles/ # ロールファイル群
├── common/ # commonロールファイル群
| ├── tasks/ # タスク群
| | └── main.yml
| ├── handlers/ # ハンドラ群
| | └── main.yml
| ├── templates/ # テンプレートファイル群
| | └── ntp.conf.j2
| ├── files/ # アップロードファイル群
| | ├── bar.txt
| | └── foo.txt
| ├── vars/ # オーバーライドすべきでない変数群
| | └── main.yml
| ├── defaults/ # オーバーライドできるデフォルトの変数群
| | └── main.yml
| └── meta/ # 依存ロール設定ファイル
| └── main.yml
├── webtier/
| :
├── monitoring/
| :
└── fooapp/
:
战略规划书
-
- YAML形式で記述される 設定管理スクリプト
1つ以上のPlayのリスト
玩
-
- ホストとタスクを結びつけるもの で以下を含む
設定するホストの集合
ホスト上で実行するタスクのリスト
库存文件
-
- インベントリ : Ansibleの知るホスト群
インベントリファイルにはホスト群を記述
ホストのグループを定義可能
AWS EC2 など動的にインベントリを設定することも可能
变量
在中文母语中,可使用以下方式改写:
有一些变量可以通过描述来定义,还有一些变量是由Ansible自动定义的。
主机变量
-
- 各ホストに関する変数
host_vars/hostname1 で hostname1 の変数を定義
团队变量
-
- 各グループに関する変数
group_vars/group1 で group1 に属するホストに変数を定義
グループの積集合に対して変数を定義する、なども可能
事实 (jishí)
-
- ホストに関する情報を保存した変数
CPUアーキテクチャ / OS / IPアドレス など
playbook実行のはじめにファクトの収集が行われる
卷筒
- playbookを分割・再利用するための仕組み
角色分工
-
- あるロールが依存する1つ以上のロールを指定可
- 指定された依存対象のロールが実行されることを保証