6

我在 Linode 上有我新的 Ubuntu 服务器,并且我有该服务器的 root 密码。

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

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

我想将剧本执行为user1,但事情user1尚不存在,我不想将角色运行为root。我需要user1在运行剧本之前手动创建。有什么办法可以自动化吗?

4

2 回答 2

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

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

于 2014-06-09T12:52:57.737 回答
1

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

于 2014-06-03T04:16:03.543 回答