ansible 将 `--ask-pass` 替换为受保护的密码
ansible replace `--ask-pass` with a vaulted password
任意变量替换--ask-pass
,比如ansible_become_pass
替换--ask-become-pass
?
我正在使用 Ansible 2.9
剧本名称:itop_db.yml
剧本:
- name: configure DB to listen
hosts: itop_acc_db
become: yes
vars: vars.yml
tasks:
- name: configure DB
lineinfile:
path: /etc/my.cnf.d/server.cnf
regexp: '^bind-address'
line: bind-address={{ ansible_default_ipv4.address }}
Ansible 主机文件:
all:
hosts:
children:
itop_acc:
hosts:
hostname1.domain
itop_pro:
hosts:
hostname2.domain
itop_dev:
hosts:
hostname3.domain
itop_acc_db:
hosts:
dbhostname1.domain ansible_ssh_pass=ansible_ssh_pas ansible_become_pass=ansible_become_pas
变量文件:
vars:
ansible_ssh_pas: vault_ansible_ssh_pass
ansible_become_pas: vault_ansible_become_pass
保险库文件:
vault_ansible_ssh_pass: 'password'
vault_ansible_become_pass: 'password'
命令行:
ansible-playbook itop_db.yml --ask-pass --ask-become-pass
我正在尝试用保险密码替换 --ask-pass
或 -k
选项,以便解决方案完全自动化,无需人工干预。
我无法改变目标服务器身份验证仅基于密码这一事实。
目标服务器其实需要两个密码,一个ssh,一个sudo。
从文档和 Whosebug 我想我了解如何使用 ansible_become_pass
变量将 --ask-become-pass
或 -K
替换为受保护的密码。
我在这里查看了一些页面,这让我更接近但还没有。
下面的 link 正确建议使用选项 -b
,它消除了成为密码的提示。
Is there any way to specify both ask-pass and ask-become-pass only once in Ansible?
这个 link 建议使用 ansible_become_pass
作为 --ask-become-pass
Specify sudo password for Ansible
这位link虽然8岁左右,但和我有同样的问题,但没有答案。
Ansible: ask-pass programmatically
写完这些,我想它可能会用ansible_pass
代替--ask-pass
。
虽然我在任何地方都看不到这种描述。
深入挖掘后,我发现这个 link 建议使用 ansible_ssh_pass
。
https://serverfault.com/questions/628989/how-to-set-default-ansible-username-password-for-ssh-connection
我已经尝试了上述设置,但在执行提到的剧本时我仍然收到密码提示。
欢迎任何帮助或提示。
ansible_ssh_pass
或 ansible_password
应该这样做。它可以在清单文件中定义,如记录 here. Or in ansible.cfg file, more details here. The ansible-playbook
flag --connection-password-file
can also be used after storing password in a file. More details here. Its also recommended to use encrytion to store sensitive information. Best practice is to use vault
in group_vars, as mentioned here。希望这有帮助。
任意变量替换--ask-pass
,比如ansible_become_pass
替换--ask-become-pass
?
我正在使用 Ansible 2.9
剧本名称:itop_db.yml
剧本:
- name: configure DB to listen
hosts: itop_acc_db
become: yes
vars: vars.yml
tasks:
- name: configure DB
lineinfile:
path: /etc/my.cnf.d/server.cnf
regexp: '^bind-address'
line: bind-address={{ ansible_default_ipv4.address }}
Ansible 主机文件:
all:
hosts:
children:
itop_acc:
hosts:
hostname1.domain
itop_pro:
hosts:
hostname2.domain
itop_dev:
hosts:
hostname3.domain
itop_acc_db:
hosts:
dbhostname1.domain ansible_ssh_pass=ansible_ssh_pas ansible_become_pass=ansible_become_pas
变量文件:
vars:
ansible_ssh_pas: vault_ansible_ssh_pass
ansible_become_pas: vault_ansible_become_pass
保险库文件:
vault_ansible_ssh_pass: 'password'
vault_ansible_become_pass: 'password'
命令行:
ansible-playbook itop_db.yml --ask-pass --ask-become-pass
我正在尝试用保险密码替换 --ask-pass
或 -k
选项,以便解决方案完全自动化,无需人工干预。
我无法改变目标服务器身份验证仅基于密码这一事实。 目标服务器其实需要两个密码,一个ssh,一个sudo。
从文档和 Whosebug 我想我了解如何使用 ansible_become_pass
变量将 --ask-become-pass
或 -K
替换为受保护的密码。
我在这里查看了一些页面,这让我更接近但还没有。
下面的 link 正确建议使用选项 -b
,它消除了成为密码的提示。
Is there any way to specify both ask-pass and ask-become-pass only once in Ansible?
这个 link 建议使用 ansible_become_pass
作为 --ask-become-pass
Specify sudo password for Ansible
这位link虽然8岁左右,但和我有同样的问题,但没有答案。 Ansible: ask-pass programmatically
写完这些,我想它可能会用ansible_pass
代替--ask-pass
。
虽然我在任何地方都看不到这种描述。
深入挖掘后,我发现这个 link 建议使用 ansible_ssh_pass
。
https://serverfault.com/questions/628989/how-to-set-default-ansible-username-password-for-ssh-connection
我已经尝试了上述设置,但在执行提到的剧本时我仍然收到密码提示。
欢迎任何帮助或提示。
ansible_ssh_pass
或 ansible_password
应该这样做。它可以在清单文件中定义,如记录 here. Or in ansible.cfg file, more details here. The ansible-playbook
flag --connection-password-file
can also be used after storing password in a file. More details here. Its also recommended to use encrytion to store sensitive information. Best practice is to use vault
in group_vars, as mentioned here。希望这有帮助。