ansible:以不同用户身份运行角色

Dar*_*EvE 4 ansible devops

我在剧本中运行两个角色,一个角色创建用户,另一个角色运行一系列我想作为服务器上新创建的用户运行的任务。

playbook的写法如下:

- hosts: centos
  connection: ssh
  gather_facts: false
  become: true

  roles:
  - ../roles/user_setup
  - ../roles/tasks
Run Code Online (Sandbox Code Playgroud)

假设从user_setup角色创建的用户名为user1:我基本上希望名为 的角色tasks作为 运行user1。最好的方法是什么?谢谢。

Pie*_* B. 5

这个问题几乎为你提供了一个解决方案。你可以使用类似的东西:

- hosts: centos
  connection: ssh
  gather_facts: false

  roles:
  - role: ../roles/user_setup
    become: true

  - role: ../roles/tasks
    become: true
    become_user: user1
Run Code Online (Sandbox Code Playgroud)

如果您想直接连接user1(而不是升级到它),您可以将最新的角色调用替换为:

  - role: ../roles/tasks
    become: false
    remote_user: user1
Run Code Online (Sandbox Code Playgroud)