使用ansible从用户处读取密码
我有一些代码可以从用户那里读取密码并将其写入文件,我输入了密码cPUtnZjn$s2O,但在输出文件中得到了cPUtnZjn使用ansible从用户处读取密码,ansible,Ansible,我有一些代码可以从用户那里读取密码并将其写入文件,我输入了密码cPUtnZjn$s2O,但在输出文件中得到了cPUtnZjn --- - name: read password hosts: all vars_prompt: - name: admin_password prompt: "enter password for admin" private: no tasks: - name: modify database shel
---
- name: read password
hosts: all
vars_prompt:
- name: admin_password
prompt: "enter password for admin"
private: no
tasks:
- name: modify database
shell: |
echo 'database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: '{{admin_password}}'' > /root/admin_password
输出
database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: cPUtnZjn
如何解决此问题?当您从单引号输出密码时,引用字符串的方式是错误的<代码>$s2O然后由shell解释为环境变量。因为id不存在,所以它是空的。以下内容将得到您期望的结果:
- name: modify database
shell: |
echo 'database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: {{ admin_password }}' > /root/admin_password
如果您的结果中确实需要在密码周围加上单引号,则可以执行以下操作(警告:在前面加引号…):
- name: modify database
shell: |
echo "database_driver: pdo_mysql
database_host: 127.0.0.1
database_password: '"'{{ admin_password }}'"'" > /root/admin_password