「Ansible」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(同期)
7行目: 7行目:
 
== インストール ==
 
== インストール ==
   
{{Pkg|ansible}} パッケージを[[インストール]]してください。デプロイメントや設定などの作業を自動化したいリモートマシンに必要なのは Python のインタプリタと [[OpenSSH|OpenSSH サーバー]]だけです
+
制御マシン (サーバーあるいはマスター) に {{Pkg|ansible}} パッケージを[[インストール]]してください。
   
  +
自動デプロイや設定作業を適用したい管理マシン (クライアントあるいはスレーブ) には {{Pkg|python2}} (あるいは実験的な {{Pkg|python}}) と {{Pkg|openssh}} をインストールしてください。ssh 接続を正しく機能させるには [[SSH_鍵#リモートサーバーに公開鍵をコピー|ssh 鍵の設定]]が必要です。
  +
  +
== 基本的な使い方 ==
  +
=== インベントリ ===
  +
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|
  +
[control]
  +
192.168.12.1
  +
  +
[managed]
  +
192.168.12.2
  +
192.168.12.3
  +
}}
  +
  +
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.
  +
  +
=== Ping ===
  +
You may check if all the nodes listed in the inventory is alive by
  +
  +
$ ansible all -m ping
  +
  +
=== 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|
  +
- hosts: control managed
  +
tasks:
  +
- name: full system upgrade
  +
script: /usr/bin/pacman -Syu
  +
}}
  +
  +
Then, run the playbook script:
  +
  +
# ansible-playbook syu.yml
  +
  +
== Tips and tricks ==
 
=== Python の場所を Ansible に指定する ===
 
=== Python の場所を Ansible に指定する ===
   
Ansible は対象のマシンに [[Python]] を必要とします。Python 3 はプレビューとしてサポートされていますが全てのモジュールが動作するとは限りません [https://docs.ansible.com/ansible/python_3_support.html]。デフォルトでは Ansible はリモートシステムの {{ic|/usr/bin/python}} が 2.X あるいは 3.X バージョンの Python (特に 2.4 以上) だと想定しています。
+
Ansible は管理対象のマシンに [[Python]] を必要とします。プレビューとして Python 3 がサポートされていますが [https://docs.ansible.com/ansible/python_3_support.html]、全てのモジュールが機能するとは限りません。デフォルトでは Ansible はリモートシステムの {{ic|/usr/bin/python}} が 2.X あるいは 3.X バージョンの Python (特に 2.4 以上) だと想定しています。
   
 
使用するモジュールが Python 2 を必要とする場合、Ansible のインベントリファイルで {{ic|ansible_python_interpreter}} 変数を設定して Python 2 の場所を Ansible に指定する必要があります。以下のようにホストグループを使って設定できます:
 
使用するモジュールが Python 2 を必要とする場合、Ansible のインベントリファイルで {{ic|ansible_python_interpreter}} 変数を設定して Python 2 の場所を Ansible に指定する必要があります。以下のようにホストグループを使って設定できます:
   
{{hc|inventory|
+
{{hc|Inventory file|
 
[archlinux]
 
[archlinux]
 
server1
 
server1
28行目: 63行目:
   
 
Python の設定に関する詳細は [https://docs.ansible.com/ansible/python_3_support.html], [http://docs.ansible.com/faq.html#how-do-i-handle-python-pathing-not-having-a-python-2-x-in-usr-bin-python-on-a-remote-machine], [http://docs.ansible.com/intro_inventory.html#list-of-behavioral-inventory-parameters] にあります。
 
Python の設定に関する詳細は [https://docs.ansible.com/ansible/python_3_support.html], [http://docs.ansible.com/faq.html#how-do-i-handle-python-pathing-not-having-a-python-2-x-in-usr-bin-python-on-a-remote-machine], [http://docs.ansible.com/intro_inventory.html#list-of-behavioral-inventory-parameters] にあります。
  +
  +
== 参照 ==
  +
* [https://www.ansible.com/quick-start-video Ansible concept in 12 minutes]
  +
* [http://docs.ansible.com/ansible/latest/pacman_module.html pacman module details]

2017年8月3日 (木) 21:12時点における版

docs.ansible.com より:

Ansible は IT 自動化ツールです。システムを設定し、ソフトウェアをデプロイして、継続的なデプロイや休止期間を挟まないローリングアップデートなど高度な IT 業務をオーケストラレートできます。

インストール

制御マシン (サーバーあるいはマスター) に ansible パッケージをインストールしてください。

自動デプロイや設定作業を適用したい管理マシン (クライアントあるいはスレーブ) には python2 (あるいは実験的な python) と openssh をインストールしてください。ssh 接続を正しく機能させるには ssh 鍵の設定が必要です。

基本的な使い方

インベントリ

According to the default settings in /etc/ansible/ansible.cfg, one can define its infrastructure in /etc/ansible/hosts. For instance, the following inventory defines a tiny cluster with three nodes:

/etc/ansible/hosts
[control]
192.168.12.1

[managed]
192.168.12.2
192.168.12.3

One can assign specific attributes to every node in the file. Check the official document for the details.

Ping

You may check if all the nodes listed in the inventory is alive by

$ ansible all -m ping

Playbook

Playbook serves as a powerful tool to deploy and configure the whole infrastructure. Check 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:

syu.yml
- hosts: control managed
  tasks:
          - name: full system upgrade
            script: /usr/bin/pacman -Syu

Then, run the playbook script:

# 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] にあります。

参照