我正在尝试在运行不同操作系统的多个ec2实例上运行我的playbook。要通过SSH进入系统,需要使用远程用户名。在AWS云中,具有OS的实例(例如REDHAT和Amazon Linux)具有用于登录的用户名ec2-user,但是对于运行UBUNTU的实例,我们需要使用ubuntu作为用户名。所以请帮我找出一种自动化这个过程的方法,并帮助我理解如何在剧本中定义多个远程用户。
现在,这样做的一种方法是我们可以在主机文件或host_vars文件中定义它,但我使用的是动态库存,它根据标签值动态生成实例的IP。 / p>
我尝试在主playbook文件中使用条件语句,但我想它主要限制在主文件中使用这样的东西。
答案 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”
任务: