使用 Consul 动态库存作为 Ansible 的库存,并且想要设置特定的 ssh 用户,该怎么做?

使用 Consul 动态库存作为 Ansible 的库存,并且想要设置特定的 ssh 用户,该怎么做?

我的设置:

网络中的每个物理服务器都安装了 consul-client,我使用以下方式管理这些服务器 consul_dynamic_inventory我已编辑脚本,以允许我使用基于操作系统主版本的特定分组选项(例如其他内容)。

例子:

(base) ➜  ansible git:(master) ✗ ansible centos6 -m ping -e ansible_ssh_user=root
Sunday 08 March 2020  16:55:10 +0200 (0:00:00.101)       0:00:00.102 **********
agent-c6-06.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
agent-c6-01.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
agent-c6-05.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

上述示例是可能的,因为我配置了/etc/ansible/ansible.cfg“inventory”指令来指向该 consul_dynamic_inventory 脚本,所以我不必在命令中明确添加“-i inventory_file”。

我的问题:

我想将“ansible_ssh_user=root”添加到默认值,这样每次运行 ansible 时就不必提供该开关。

通常,为了将其添加到所有主机,我会在清单文件中添加:

[all:vars]
ansible_ssh_user=root

但由于我的库存实际上是一个脚本,我不确定在哪里添加它,因为将它添加到脚本中显然会破坏它的运行。

我已尝试将其添加到文件的以下部分ansible.cfg

[defaults]
[inventory]
[ssh_connection]

但无济于事。

我的问题:

哪里是添加它的正确位置?

答案1

好的,找到了。

我尝试在文件的几个地方将其添加为“ansible_ssh_user”,ansible.cfg但事实证明,在文件[defaults]的部分下,它应该添加为:“remote_user” ansible.cfg

相关内容