vars_promp - 実行時に変数の値をキーボード入力

2019/06/15

Ansible

 Ansible Documentation

Prompts

 機能

  •  vars セクションに記述する
  • 実行時に変数の値をキーボード入力する
  •  --extra-vars オプションが指定された場合、オプションが優先される

 パラメータ

パラメータ選択肢/
Default
説明
confirmno
・ yes
yes を指定すると確認入力を行う
default-入力値が省略([Enter]だけ)のときのデフォルト値
encrypt・ des_crypt
・ bsdi_crypt
・ bigcrypt
・ crypt16
・ md5_crypt
・ bcrypt
・ sha1_crypt
・ sun_md5_crypt
・ sha256_crypt
・ sha512_crypt
・ apr_md5_crypt
・ phpass
・ pbkdf2_digest
・ cta_pbkdf2_sha1
・ dlitz_pbkdf2_sha1
・ scram
・ bsd_nthash
入力した値を暗号化するときの方式
・ des_crypt - DES Crypt
・ bsdi_crypt - BSDi Crypt
・ bigcrypt - BigCrypt
・ crypt16 - Crypt16
・ md5_crypt - MD5 Crypt
・ bcrypt - BCrypt
・ sha1_crypt - SHA-1 Crypt
・ sun_md5_crypt - Sun MD5 Crypt
・ sha256_crypt - SHA-256 Crypt
・ sha512_crypt - SHA-512 Crypt
・ apr_md5_crypt - Apache’s MD5-Crypt variant
・ phpass - PHPass’ Portable Hash
・ pbkdf2_digest - Generic PBKDF2 Hashes
・ cta_pbkdf2_sha1 - Cryptacular’s PBKDF2 hash
・ dlitz_pbkdf2_sha1 - Dwayne Litzenberger’s PBKDF2 hash
・ scram - SCRAM Hash
・ bsd_nthash - FreeBSD’s MCF-compatible nthash encoding
name-入力した値を格納する変数
private・ no
yes
yes を指定すると入力した値をエコー表示(エコーバック)しない
prompt-変数に値を入力するよう促すメッセージ
sault_size8暗号化するときに付与するデータ(salt)のサイズ
unsafeno
・ yes
入力する値にテンプレートエラーを発生させる可能性がある特殊文字(例 % )を含む可能性がある場合に yes を指定する

 例

■ 基本的な使用例
---
- hosts: all
  gather_facts: no

  vars_prompt:

    - name: username
      prompt: "ユーザー名を入力してください"
      private: no

    - name: password
      prompt: "パスワードを入力してください"

  tasks:

    - debug:
        msg: '{{ username }} でログインしています'
実行結果です。最初の入力は private: no が指定されているので、入力した値がエコーバックしています。
ansibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i localhost, -c local site.yml
ユーザー名を入力してください: user
パスワードを入力してください: 

PLAY [all] *********************************************************************************************************************************************************

TASK [debug] *******************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "user でログインしています"
}

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

ansibleman@ubuntu-pc:~/ansible/vars$ 

■ confirm の使用例
---
- hosts: all
  gather_facts: no

  vars_prompt:

    - name: username
      prompt: "ユーザー名を入力してください"
      private: no

    - name: password
      confirm: yes
      prompt: "パスワードを入力してください"

  tasks:

    - debug:
        msg: '{{ username }} でログインしています'
実行結果です。パスワードの入力は confirm: yes が指定されているので、再入力が必要になっています。confirm: yes を指定すると、同じ値を入力するまで再入力が繰り返されます。
ansibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i localhost, -c local site.yml
ユーザー名を入力してください: user
パスワードを入力してください: 
confirm パスワードを入力してください: 
***** VALUES ENTERED DO NOT MATCH ****
パスワードを入力してください: 
confirm パスワードを入力してください: 

PLAY [all] *********************************************************************************************************************************************************

TASK [debug] *******************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "user でログインしています"
}

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

ansibleman@ubuntu-pc:~/ansible/vars$

■ encrypt の使用例
---
- hosts: all
  gather_facts: no

  vars_prompt:

    - name: username
      prompt: "ユーザー名を入力してください"
      private: no

    - name: password
      encrypt: "sha512_crypt"
      unsafe: yes
      private: no
      prompt: "パスワードを入力してください"

  tasks:

    - debug:
        msg: '{{ username }} でログインしています'
    
    - debug:
        msg: '暗号化されたパスワード : {{ password }}'
実行結果です。sha512_crypt で暗号化されたパスワードが表示されています。
ansibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i localhost, -c local site.yml
ユーザー名を入力してください: abc
パスワードを入力してください: %$&

PLAY [all] *********************************************************************************************************************************************************

TASK [debug] *******************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "abc でログインしています"
}

TASK [debug] *******************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "暗号化されたパスワード : $6$UZPe2lkOJ48V.zHd$58ZDM8aQZUYLUzoLtHQmxsXrGkwUyPDe3NZomW2WjWV6luvU074lHyreLyy28pus7C7/SKOE/kDfEWROgT3bK0"
}

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

ansibleman@ubuntu-pc:~/ansible/vars$

■ private の使用例
---
- hosts: all
  gather_facts: no

  vars_prompt:

    - name: ans
      prompt: "処理を実行しますか?"
      default: "no"
      private: no

  tasks:

    - debug:
        var: ans
実行結果です。何も入力しないと、default: で指定した値が設定されているのがわかります。
ansibleman@ubuntu-pc:~/ansible/vars$ ansible-playbook -i localhost, -c local site.yml
処理を実行しますか? [no]: 

PLAY [all] *********************************************************************************************************************************************************

TASK [debug] *******************************************************************************************************************************************************
ok: [localhost] => {
    "ans": "no"
}

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

ansibleman@ubuntu-pc:~/ansible/vars

カテゴリー

目次

QooQ