在Ansible中定义多个远程用户

时间:2016-10-26 10:04:38

标签: ansible

我正在尝试在运行不同操作系统的多个ec2实例上运行我的playbook。要通过SSH进入系统,需要使用远程用户名。在AWS云中,具有OS的实例(例如REDHAT和Amazon Linux)具有用于登录的用户名ec2-user,但是对于运行UBUNTU的实例,我们需要使用ubuntu作为用户名。所以请帮我找出一种自动化这个过程的方法,并帮助我理解如何在剧本中定义多个远程用户。

现在,这样做的一种方法是我们可以在主机文件或host_vars文件中定义它,但我使用的是动态库存,它根据标签值动态生成实例的IP。 / p>

我尝试在主playbook文件中使用条件语句,但我想它主要限制在主文件中使用这样的东西。

2 个答案:

答案 0 :(得分:0)

在创建实例时定义标记,例如

OSType = redhat

当你收集ec2事实时,你会发现现在有一个名为

的组
"tag_OSType_redhat": [
    "server1",
    "server2",
],

现在,您可以创建一个名为group_vars/tag_OSType_redhat/main.yml的文件,然后在其中添加所需的用户名。

答案 1 :(得分:0)

你可以有多个主机,在它们里面,你可以有 remote_user: [remote_user] 作为用户名,它会工作。

例如:

  • 主机:host1

    remote_user: "ec2-user"

    任务:

  • 主机:host2

    远程用户:“ubuntu”

    任务: