「Ansible」の版間の差分
(同期) |
(翻訳) |
||
13行目: | 13行目: | ||
== 基本的な使い方 == |
== 基本的な使い方 == |
||
=== インベントリ === |
=== インベントリ === |
||
+ | {{ic|/etc/ansible/ansible.cfg}} のデフォルト設定では、{{ic|/etc/ansible/hosts}} にインフラを定義します。3つのノードからなる小規模なクラスタを定義するインベントリの例: |
||
− | According to the default settings in {{ic|/etc/ansible/ansible.cfg}}, one can define its infrastructure in {{ic|/etc/ansible/hosts}}. For instance, the following inventory defines a tiny cluster with three nodes: |
||
{{hc|/etc/ansible/hosts| |
{{hc|/etc/ansible/hosts| |
||
[control] |
[control] |
||
23行目: | 23行目: | ||
}} |
}} |
||
− | + | ファイルの中でノードごとに属性を割り当てることができます。詳しくは [http://docs.ansible.com/ansible/latest/intro_inventory.html 公式ドキュメント] を読んでください。 |
|
=== Ping === |
=== Ping === |
||
+ | インベントリ内のノードが稼働しているか確認するには: |
||
− | You may check if all the nodes listed in the inventory is alive by |
||
$ ansible all -m ping |
$ ansible all -m ping |
||
=== Playbook === |
=== Playbook === |
||
+ | Playbook はインフラをデプロイ・設定するための強力なツールです。詳しくは [http://docs.ansible.com/ansible/latest/playbooks.html 公式ドキュメント] を読んでください。以下は全てのノードでシステムアップグレードを実行する例です。まず YAML 形式の playbook ファイルを作成します: |
||
− | Playbook serves as a powerful tool to deploy and configure the whole infrastructure. Check [http://docs.ansible.com/ansible/latest/playbooks.html the official document] for more details. Here is an extremely simple use case, only for demonstration purpose, where the administrator of above inventory want to perform a full system upgrade on all nodes. First, create a playbook file, in YAML format: |
||
{{hc|syu.yml| |
{{hc|syu.yml| |
||
- hosts: control managed |
- hosts: control managed |
||
39行目: | 39行目: | ||
}} |
}} |
||
− | + | そして playbook スクリプトを実行: |
|
# ansible-playbook syu.yml |
# ansible-playbook syu.yml |
2017年8月3日 (木) 21:15時点における版
docs.ansible.com より:
- Ansible は IT 自動化ツールです。システムを設定し、ソフトウェアをデプロイして、継続的なデプロイや休止期間を挟まないローリングアップデートなど高度な IT 業務をオーケストラレートできます。
目次
インストール
制御マシン (サーバーあるいはマスター) に ansible パッケージをインストールしてください。
自動デプロイや設定作業を適用したい管理マシン (クライアントあるいはスレーブ) には python2 (あるいは実験的な python) と openssh をインストールしてください。ssh 接続を正しく機能させるには ssh 鍵の設定が必要です。
基本的な使い方
インベントリ
/etc/ansible/ansible.cfg
のデフォルト設定では、/etc/ansible/hosts
にインフラを定義します。3つのノードからなる小規模なクラスタを定義するインベントリの例:
/etc/ansible/hosts
[control] 192.168.12.1 [managed] 192.168.12.2 192.168.12.3
ファイルの中でノードごとに属性を割り当てることができます。詳しくは 公式ドキュメント を読んでください。
Ping
インベントリ内のノードが稼働しているか確認するには:
$ ansible all -m ping
Playbook
Playbook はインフラをデプロイ・設定するための強力なツールです。詳しくは 公式ドキュメント を読んでください。以下は全てのノードでシステムアップグレードを実行する例です。まず YAML 形式の playbook ファイルを作成します:
syu.yml
- hosts: control managed tasks: - name: full system upgrade script: /usr/bin/pacman -Syu
そして playbook スクリプトを実行:
# ansible-playbook syu.yml
Tips and tricks
Python の場所を Ansible に指定する
Ansible は管理対象のマシンに Python を必要とします。プレビューとして Python 3 がサポートされていますが [1]、全てのモジュールが機能するとは限りません。デフォルトでは Ansible はリモートシステム上の /usr/bin/python
が 2.X あるいは 3.X バージョンの Python (特に 2.4 以上) だと想定しています。
使用するモジュールが Python 2 を必要とする場合、Ansible のインベントリファイルで ansible_python_interpreter
変数を設定して Python 2 の場所を Ansible に指定する必要があります。以下のようにホストグループを使って設定できます:
Inventory file
[archlinux] server1 server2 [debian] server3 [archlinux:vars] ansible_python_interpreter=/usr/bin/python2
Python の設定に関する詳細は [2], [3], [4] にあります。