Ansibleでの変数の使用方法


  1. インベントリファイル内での変数の定義: 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という変数を定義しています。

  1. プレイブック内での変数の使用: 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_portmax_clientsという変数を定義し、それを利用してApacheのインストールと設定を行っています。

  1. ロール内での変数の使用: Ansibleでは、ロールと呼ばれる再利用可能なプレイブックのまとまりを作成することができます。ロール内でも変数を使用することができます。以下は、ロール内で変数を使用する例です:
- name: Configure webserver
  hosts: webserver
  roles:
    - common
    - webapp

上記の例では、commonロールとwebappロールが使用されています。ロール内で変数を使用する場合は、roles/ロール名/vars/main.ymlファイルに変数を定義します。

以上がAnsibleでの変数の使用方法とコード例の一部です。変数を活用することで、Ansibleの柔軟性と再利用性を向上させることができます。詳細な情報はAnsibleの公式ドキュメントを参照してください。