如何以root用户身份运行Ansible,然后更改为另一个用户?

Ran*_*ngh 6 ansible ansible-playbook

我在Linode上有我的新Ubuntu服务器,我有一个该服务器的root密码.

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

- hosts: linode
  sudo: true
  remote_user: user1
  roles:
     - role: common
     - role: apache2
Run Code Online (Sandbox Code Playgroud)

我想执行剧本user1,但事情user1还不存在,我不想扮演角色root.我需要user1在运行playbook之前手动创建.有没有办法自动化?

Ram*_*nte 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
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了一个任务来创建用户,但这可能是一个角色,因此您可以在不同的项目之间重用它.