交互式输入:提示
如果您希望您的剧本提示用户输入某些内容,请添加一个 'vars_prompt' 部分。提示用户输入变量可以避免记录敏感数据,例如密码。除了安全性之外,提示还支持灵活性。例如,如果您在一个 playbook 中使用多个软件版本,则可以提示输入特定版本。
这是一个最基本的例子
---
- hosts: all
vars_prompt:
- name: username
prompt: What is your username?
private: false
- name: password
prompt: What is your password?
tasks:
- name: Print a message
ansible.builtin.debug:
msg: 'Logging in as {{ username }}'
默认情况下,用户输入是隐藏的,但可以通过设置 private: false
来使其可见。
注意
对于任何已通过命令行 --extra-vars
选项定义的变量,或者从非交互式会话(例如 cron 或 Ansible AWX)运行时,将跳过对单个 vars_prompt
变量的提示。请参阅 定义运行时变量.
如果您有一个很少更改的变量,您可以提供一个可以被覆盖的默认值。
vars_prompt:
- name: release_version
prompt: Product release version
default: "1.0"
对 vars_prompt
提供的值进行哈希处理
您可以对输入的值进行哈希处理,以便您可以使用它,例如,使用 user 模块来定义密码
vars_prompt:
- name: my_password2
prompt: Enter password2
private: true
encrypt: sha512_crypt
confirm: true
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 的 MD5-Crypt 变体
phpass - PHPass 的可移植哈希
pbkdf2_digest - 通用 PBKDF2 哈希
cta_pbkdf2_sha1 - Cryptacular 的 PBKDF2 哈希
dlitz_pbkdf2_sha1 - Dwayne Litzenberger 的 PBKDF2 哈希
scram - SCRAM 哈希
bsd_nthash - FreeBSD 的 MCF 兼容 nthash 编码
唯一接受的参数是 'salt' 或 'salt_size'。您可以通过定义 'salt' 来使用自己的盐,或者使用 'salt_size' 自动生成一个盐。默认情况下,Ansible 生成一个大小为 8 的盐。
版本 2.7 中新增。
如果您没有安装 Passlib,Ansible 将使用 crypt 库作为后备。Ansible 最多支持四种 crypt 方案,具体取决于您的平台,最多支持以下 crypt 方案
bcrypt - BCrypt
md5_crypt - MD5 Crypt
sha256_crypt - SHA-256 Crypt
sha512_crypt - SHA-512 Crypt
版本 2.8 中新增。
允许 vars_prompt
值中的特殊字符
某些特殊字符,例如 {
和 %
会导致模板错误。如果您需要接受特殊字符,请使用 unsafe
选项
vars_prompt:
- name: my_password_with_weird_chars
prompt: Enter password
unsafe: true
private: true
另请参阅
- Ansible 剧本
剧本简介
- 条件
剧本中的条件语句
- 使用变量
关于变量的一切
- 用户邮件列表
有问题吗?请访问 Google 群组!
- 实时聊天
如何加入 Ansible 聊天频道