如何使用 Ansible 传递密码?
How pass password with Ansible?
我正在尝试 运行 Ansible 中的这个任务:
- name: zabbix database
shell:
chdir: /usr/share/doc/zabbix-server-mysql-4.0.33/
cmd: zcat create.sql.gz | mysql -u muhannad -p zabbix_db
当zcat create.sql.gz
运行需要输入密码时,Ansible因为等待输入密码而卡住了,我如何从客户端设置密码?
提示输入密码的不是 zcat
,而是 mysql
。
您可以通过 -p
命令行开关传递密码,例如,如果您的密码是 mypassword
:
mysql -u muhannad -pmypassword zabbix_db
但请注意,除其他外,这将使您的密码在 ps
中可见。或者,您可能更喜欢通过环境或通过 my.cnf
.
指定密码
可以使用expect模块指定密码输入。
- name: Provide password
expect:
command: zcat /usr/share/doc/zabbix-server-mysql-4.0.33/create.sql.gz | mysql -u muhannad -p zabbix_db
responses:
'password': "{{mysql_password}}"
您可以使用 Ansible Vault 来管理敏感数据。
详细说明请参考official documents of Vault | Ansible Documentation.
创建加密(Encrypted)文件。
$ ansible-vault create foo.yml
编辑加密文件的内容。
$ ansible-vault edit foo.yml
更改加密密钥(密码)。
$ ansible-vault rekey foo.yml
加密现有明文文件
$ ansible-vault encrypt foo.yml
解密加密文件。
$ ansible-vault decrypt foo.yml
查看加密文件内容
$ ansible-vault view foo.yml
我正在尝试 运行 Ansible 中的这个任务:
- name: zabbix database
shell:
chdir: /usr/share/doc/zabbix-server-mysql-4.0.33/
cmd: zcat create.sql.gz | mysql -u muhannad -p zabbix_db
当zcat create.sql.gz
运行需要输入密码时,Ansible因为等待输入密码而卡住了,我如何从客户端设置密码?
提示输入密码的不是 zcat
,而是 mysql
。
您可以通过 -p
命令行开关传递密码,例如,如果您的密码是 mypassword
:
mysql -u muhannad -pmypassword zabbix_db
但请注意,除其他外,这将使您的密码在 ps
中可见。或者,您可能更喜欢通过环境或通过 my.cnf
.
可以使用expect模块指定密码输入。
- name: Provide password
expect:
command: zcat /usr/share/doc/zabbix-server-mysql-4.0.33/create.sql.gz | mysql -u muhannad -p zabbix_db
responses:
'password': "{{mysql_password}}"
您可以使用 Ansible Vault 来管理敏感数据。
详细说明请参考official documents of Vault | Ansible Documentation.
创建加密(Encrypted)文件。
$ ansible-vault create foo.yml
编辑加密文件的内容。
$ ansible-vault edit foo.yml
更改加密密钥(密码)。
$ ansible-vault rekey foo.yml
加密现有明文文件
$ ansible-vault encrypt foo.yml
解密加密文件。
$ ansible-vault decrypt foo.yml
查看加密文件内容
$ ansible-vault view foo.yml