我在Linode上安装了新的Ubuntu服务器,并且我有一个该服务器的root密码。
现在我的Ansible剧本是这样的:
- hosts: linode
sudo: true
remote_user: user1
roles:
- role: common
- role: apache2
我想以[{1}}执行该剧本,但事情user1
尚不存在,我不想以[{1}}身份运行角色。
我需要在运行playbook之前手动创建user1
。
有没有办法自动化?
答案 0 :(得分:6)
请记住,您可以在单个剧本文件中进行多次“播放”。 所以这可能是单个剧本文件的内容:
- name: First play, to create the user
hosts: linode
sudo: true
remote_user: root
tasks:
- name: create my user
user: name=user1 password=etc...
- Second play, to do the rest of the work
hosts: linode
sudo: false
remote_user: user1
roles:
- role: common
- role: apache2
请注意,我使用了一项任务来创建用户,但这可能是一个角色,因此您可以在不同项目之间重复使用它。
答案 1 :(得分:1)
你可以创建一个非常简单的 bootstrap playbook,你以root身份运行它,然后它会创建你的user1
,然后运行所有其他的playbooks。