Prompt

Playbook を実行するとき、ユーザーに特定の入力を求めることができ、 「vars_prompt」セクションでこれを行います。

これの一般的な用途は、記録したくない機密データを要求することです。

これはセキュリティーを超えた用途があります。たとえば、 すべてのソフトウェアリリースに同じ Playbook と、 プッシュスクリプトで、特定のリリースバージョンの入力が求められます。

以下は最も基本的な例です。

— - hosts: all

vars_prompt:

  • name: username prompt: “What is your username?” private: no
  • name: password prompt: “What is your password?”

tasks:

  • debug:
    msg: ‘Logging in as {{ username }}’

ユーザー入力はデフォルトでは表示されませんが、private: no を設定することで表示できます。

Note

個別の vars_prompt 変数の入力を求めるプロンプトは、コマンドラインの --extra-vars オプションですでに定義されている変数や、非対話的なセッション (cron や Ansible Tower など) から実行する場合に省略されます。/Variables/ の章の「コマンドラインで変数を渡す」を参照してください。

まれにしか変更しない変数がある場合は、 上書きできるデフォルト値を指定できます。これは、 以下のデフォルトの引数を使用して行います。

vars_prompt:

  • name: “release_version” prompt:”Product release version” default:”1.0”

Passlib がインストールされている場合、 vars_prompt は、入力値を暗号化して、たとえばユーザーモジュールを使用してパスワードを定義できます。

vars_prompt:

  • name: “my_password2” prompt:”Enter password2” private: yes encrypt: “sha512_crypt” confirm: yes salt_size:7

「Passlib」がサポートする crypt スキームを使用できます。

  • 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

ただし、許可されるパラメーターは「salt」または「salt_size」のみです。「salt」を定義するか、または「salt_size」を使用して自動生成して、 独自の「salt」を使用できます。何も指定しないと、 サイズ 8 の「salt」が生成されます。

New in version 2.7.

Passlib がインストールされていない場合は、crypt ライブラリーがフォールバックとして使用されます。 プラットフォームに応じて、最大で次の暗号化スキームがサポートされます。

  • bcrypt - BCrypt
  • md5_crypt - MD5 Crypt
  • sha256_crypt - SHA-256 Crypt
  • sha512_crypt - SHA-512 Crypt

New in version 2.8.

テンプレートエラーを作成する特殊文字 (つまり {%) を配置する必要がある場合は、unsafe オプションを使用します。

vars_prompt:
  • name: “my_password_with_weird_chars” prompt:”Enter password” unsafe: yes private: yes

See also

Playbook について
Playbook の概要
条件 (Conditional)
Playbook の条件付きステートメント
変数の使用
変数の詳細
ユーザーメーリングリスト
ご質問はございますか。 Google Group をご覧ください。
irc.freenode.net
IRC チャットチャンネル #ansible