「Ansible」の版間の差分
(同期) |
(同期) |
||
7行目: | 7行目: | ||
== インストール == |
== インストール == |
||
− | {{Pkg|ansible}} パッケージを[[インストール]]してください |
+ | 制御マシン (サーバーあるいはマスター) に {{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]] を必要とします。 |
+ | 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| |
+ | {{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] にあります。