如何使用root用户运行Ansible,然后切换到其他用户?

如何使用root用户运行Ansible,然后切换到其他用户?,ansible,ansible-playbook,Ansible,Ansible Playbook,我在Linode上有一个新的Ubuntu服务器,我有该服务器的根密码 现在我的Ansible剧本是这样的: - hosts: linode sudo: true remote_user: user1 roles: - role: common - role: apache2 我想以user1的身份执行剧本,但是user1还不存在,我不想以root的身份运行角色。 在运行剧本之前,我需要手动创建user1。 有什么方法可以自动执行吗?您可以创建一个非常简单的引导式

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

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

- hosts: linode
  sudo: true
  remote_user: user1
  roles:
     - role: common
     - role: apache2
我想以
user1
的身份执行剧本,但是
user1
还不存在,我不想以
root
的身份运行角色。 在运行剧本之前,我需要手动创建
user1

有什么方法可以自动执行吗?

您可以创建一个非常简单的引导式playbook,以root用户身份运行,它将创建您的
用户1
,然后该用户1将运行所有其他playbook。

请记住,您可以在一个playbook文件中执行多个“playbook”。 因此,这可能是单个剧本文件的内容:

- 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

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

OT:应指向ServerFault(或Unix和Linux,SuperUser,但即使是这样也会有一段时间)