我正在尝试在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因为等待输入密码而卡住了,如何从客户端设置密码?
发布于 2021-09-12 16:32:46
您可以使用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}}"发布于 2021-09-12 13:09:49
提示输入密码的不是zcat,而是mysql。
例如,如果您的口令是mypassword,则可以通过-p命令行开关传递口令
mysql -u muhannad -pmypassword zabbix_db但是请注意,这将使您的密码在ps中可见。或者,您可能更喜欢通过环境或通过my.cnf指定密码。
发布于 2021-09-13 07:04:05
您可以使用Ansible Vault来管理敏感数据。
有关详细说明,请参阅official documents of Vault | Ansible Documentation。
创建加密(加密)文件。
$ 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.ymlhttps://stackoverflow.com/questions/69151614
复制相似问题