コマンドラインからAnsible Playbookへの変数引き渡し方法

# はじめに
AnsibleのPlaybook内で使用する変数値を、ansible-playbookコマンドでPlaybookを実行するときに合わせて指定する方法がないかを調べてみました。下記のブログに記載されている--extra-varsオプションを指定すれば、コマンドライン上でAnsible Playbookに変数を引き渡すことが可能です。

[Ansibleの変数の受け渡し](https://rheb.hatenablog.com/entry/ansible_adcanced_variables)

上記のブログを参考に、実際に--extra-varsオプションを使って、Playbookへの変数引き渡しをテストしてみました。

# テスト環境
* Ubuntu 22.04.LTS
* ansible 2.10.8
* python version =3.10.4

# テスト用Playbook
テスト用Playbookとして、AWSクラウド上にVPCを作成し、作成したVPCの情報を出力するaws_vpccre.yamlというPlaybookを作成しました。
```yaml:aws_vpccre.yaml
- hosts: localhost
  gather_facts: false

  tasks:

    - name: create vpc with aws Tokyo Region
      ec2_vpc_net:
        name: "{{vpc_name}}"
        cidr_block: "{{vpc_cidr_block}}"
        dns_hostnames: yes
        dns_support: yes
        tenancy: default
        state: present
      register: vpc_net

    - name: get vpc information
      debug:
        msg: "{{vpc_net}}"
```
コマンドラインから指定する外部変数として、<font color="orange">vpc_name</font>と<font color="orange">vpc_cidr_block</font>の2つを用意しました。今回は、これらの変数に以下の値を指定することとします。
* vpc_name：My-VPC-01 (VPCの名前)
* vpc_cidr_block：10.0.0.0/16 (VPCのアドレス範囲：CIDR表記)

# コマンドラインからの変数引き渡しテスト
ansible-playbookコマンド実行時に、--extra-varsオプション及び外部変数値を指定し、変数引き渡しを行います。
```
$ ansible-playbook aws_vpccre.yaml --extra-vars "vpc_name=My-VPC-01 vpc_cidr_block=10.0.0.0/16"
```
下記出力結果における、<font color="orange">cidr_block</font>と<font color="orange">Name</font>の箇所にansible-playbookコマンド実行時に指定した外部変数の値が正しく引き渡されていることが確認できました。
```
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost
does not match 'all'

PLAY [localhost] **************************************************************************************

TASK [create vpc with aws Tokyo Region] ***************************************************************
ok: [localhost]

TASK [get vpc information] ****************************************************************************
ok: [localhost] => {
    "msg": {
        "changed": false,
        "debugging": {
            "expected_cidrs": [
                "10.0.0.0/16"
            ],
            "to_add": [],
            "to_remove": []
        },
        "failed": false,
        "vpc": {
            "cidr_block": "10.0.0.0/16",
            "cidr_block_association_set": [
                {
                    "association_id": "vpc-cidr-assoc-04a94dc192fb8e26f",
                    "cidr_block": "10.0.0.0/16",
                    "cidr_block_state": {
                        "state": "associated"
                    }
                }
            ],
            "classic_link_enabled": false,
            "dhcp_options_id": "dopt-92af86f5",
            "id": "vpc-0a68d6433ff84c34b",
            "instance_tenancy": "default",
            "is_default": false,
            "owner_id": "182497541992",
            "state": "available",
            "tags": {
                "Name": "My-VPC-01"
            }
        }
    }
}

PLAY RECAP ********************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
```