我正在设置 MySQL 服务器并希望 Ansiblemysql-root
在安装过程中设置密码。
在互联网的帮助下,我想出了这个解决方案:
- name: Set MySQL root password before installing
debconf: name='mysql-server' question='mysql-server/root_password' value='{{mysql_root_pwd | quote}}' vtype='password'
- name: Confirm MySQL root password before installing
debconf: name='mysql-server' question='mysql-server/root_password_again' value='{{mysql_root_pwd | quote}}' vtype='password'
- name: Install Mysql
apt: pkg=mysql-server state=latest
Run Code Online (Sandbox Code Playgroud)
mysql_root_pwd
是从 Ansible Vault 加载的变量。这运行良好,但现在服务器上的日志中有很多行:
Apr 10 14:39:59 servername ansible-debconf: Invoked with value=THEPASSWORD vtype=password question=mysql-server/root_password name=mysql-server unseen=None
Apr 10 14:39:59 servername ansible-debconf: Invoked with value=THEPASSWORD vtype=password question=mysql-server/root_password_again name=mysql-server unseen=None
Run Code Online (Sandbox Code Playgroud)
如何阻止 Ansible 将明文密码写入日志文件?
Bil*_*son 40
要防止在系统日志或其他中记录具有机密信息的任务,请在no_log: true
任务上设置:
- name: secret stuff
command: "echo {{secret_root_password}} | sudo su -"
no_log: true
Run Code Online (Sandbox Code Playgroud)
任务的运行仍将被记录,但细节很少。此外,使用的模块必须支持no_log
,因此测试自定义模块。
有关更多详细信息,请参阅Ansible 常见问题解答。它可以应用于整个剧本,但是输出会因“审查! ”消息而变得有点讨厌。
有一个比 no_log 更好的方法:True
- name: write in string variables login and password
set_fact:
temp_user: "{{ USER_VAR }}"
temp_pass: "{{ PASSWORD_VAR }}"
- name: Your operation with password in output
shell: '/opt/hello.sh'
ignore_errors: True
no_log: True
register: myregister
- debug:
msg: '{{ myregister.stderr | regex_replace(temp_user) | regex_replace(temp_pass) }}'
when: myregister.stderr != ""
- debug:
msg: '{{ myregister.stdout | regex_replace(temp_user) | regex_replace(temp_pass) }}'
when: myregister.stdout != ""
- fail:
msg: "error shell /opt/hello.sh"
when: myregister.stderr != ""
Run Code Online (Sandbox Code Playgroud)
如您所见,您需要添加:
ignore_errors: true
no_log: true
Run Code Online (Sandbox Code Playgroud)
然后使用 regex_replace 输出该命令的结果,其中:
USER_VAR - 登录变量
PASSWORD_VAR - 密码变量
通过这种方法,您不仅可以隐藏密码和登录信息,还可以获得操作的输出
归档时间: |
|
查看次数: |
66309 次 |
最近记录: |