- インベントリファイル内での変数の定義: Ansibleでは、インベントリファイルで変数を定義することができます。インベントリファイルは、Ansibleが管理するホストの一覧を含むファイルです。変数を定義するには、以下のように書きます:
[webserver]
host1 ansible_host=192.168.1.10
[database]
host2 ansible_host=192.168.1.20
[all:vars]
ansible_user=admin
上記の例では、webserver
グループとdatabase
グループのホストに対して、それぞれansible_host
という変数を定義しています。また、all:vars
セクションでは、全てのホストに対してansible_user
という変数を定義しています。
- プレイブック内での変数の使用:
Ansibleのプレイブック内でも変数を使用することができます。変数は、
vars
セクションで定義することが一般的です。以下は、プレイブック内で変数を使用する例です:
- name: Install Apache
hosts: webserver
vars:
http_port: 80
max_clients: 200
tasks:
- name: Install Apache package
yum:
name: httpd
state: present
- name: Configure Apache
template:
src: templates/httpd.conf.j2
dest: /etc/httpd/conf/httpd.conf
notify:
- Restart Apache
上記の例では、http_port
とmax_clients
という変数を定義し、それを利用してApacheのインストールと設定を行っています。
- ロール内での変数の使用: Ansibleでは、ロールと呼ばれる再利用可能なプレイブックのまとまりを作成することができます。ロール内でも変数を使用することができます。以下は、ロール内で変数を使用する例です:
- name: Configure webserver
hosts: webserver
roles:
- common
- webapp
上記の例では、common
ロールとwebapp
ロールが使用されています。ロール内で変数を使用する場合は、roles/ロール名/vars/main.yml
ファイルに変数を定義します。
以上がAnsibleでの変数の使用方法とコード例の一部です。変数を活用することで、Ansibleの柔軟性と再利用性を向上させることができます。詳細な情報はAnsibleの公式ドキュメントを参照してください。