如何使用root用户运行Ansible然后更改为另一个用户?

时间:2014-06-02 08:28:25

标签: ansible ansible-playbook

我在Linode上安装了新的Ubuntu服务器,并且我有一个该服务器的root密码。

现在我的Ansible剧本是这样的:

- hosts: linode
  sudo: true
  remote_user: user1
  roles:
     - role: common
     - role: apache2

我想以[{1}}执行该剧本,但事情user1尚不存在,我不想以[{1}}身份运行角色。 我需要在运行playbook之前手动创建user1。 有没有办法自动化?

2 个答案:

答案 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。

相关问题