我正在使用 Ansible,并且我的库存/全部中有此配置:
[master]
192.168.1.10 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
[slave]
192.168.1.11 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
192.168.1.12 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
[app]
192.168.1.13 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
[all:children]
master
slave
Run Code Online (Sandbox Code Playgroud)
我不想为每个新实例重复所有参数。如何仅在一处配置它们?有没有这些参数的文件?
小智 125
您可以将以下部分添加到您的库存文件中:
[all:vars]
ansible_connection=ssh
ansible_user=vagrant
ansible_ssh_pass=vagrant
Run Code Online (Sandbox Code Playgroud)
注意:在 Ansible 2.0 之前ansible_user是ansible_ssh_user.
Phi*_*son 26
您可以通过使用Ansible 的最佳实践文档中指定的playbook 布局并在其中定义它们的文件来设置适用于所有主机的变量。group_vars/all
---
# file: group_vars/all
ansible_connection: ssh
ansible_ssh_user: vagrant
ansible_ssh_pass: vagrant
Run Code Online (Sandbox Code Playgroud)
[编辑] 虽然我对你试图做的事情感到困惑。您不需要在清单中指定 Ansible 用户或密码。如果您使用的是 Vagrant,则绝对不会,并且如果您从命令行调用 Ansible,则可以指定用户--user=vagrant并使用--ask-pass.
我认为最好在整个 pull 的所有服务器上使用 ssh 密钥安装。您应该只在每个节点上运行 ssh-copy-id 并在任何地方安装您的 ssh 密钥,以便 ansible 能够使用您的 ssh 密钥登录。不将密码保存到剧本/清单中会更安全。
为此,您应该生成 ssh 密钥对 ,然后为所有服务器运行 ssh-copy-id。
将下面添加到库存主机。
对于 Ansible <2.0:
[all:vars]
ansible_connection=ssh
ansible_ssh_user=vagrant
ansible_ssh_pass=vagrant
Run Code Online (Sandbox Code Playgroud)
对于 Ansible >=2.0:
[all:vars]
ansible_connection=ssh # actually default mode smart is OK
ansible_user=vagrant
ansible_pass=vagrant # or ansible_ssh_pass=vagrant
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
339671 次 |
| 最近记录: |