「Ansible」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(翻訳)
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行目:
 
}}
 
}}
   
One can assign specific attributes to every node in the file. Check [http://docs.ansible.com/ansible/latest/intro_inventory.html the official document] for the details.
+
ファイルの中でノードごとに属性を割り当てることができます。詳しくは [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行目:
 
}}
 
}}
   
Then, run the playbook script:
+
そして 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] にあります。

参照