gpt4 book ai didi

ansible - 无论如何,是否可以更有效地以多个用户的身份运行多个 Ansible 剧本?

转载 作者:行者123 更新时间:2023-12-04 23:17:11 26 4
gpt4 key购买 nike

目前我的剧本结构是这样的:

~/test_ansible_roles ❯❯❯ tree .
.
├── checkout_sources
│   └── tasks
│   └── main.yml
├── install_dependencies
│   └── tasks
│   └── main.yml
├── make_dirs
│   └── tasks
│   └── main.yml
├── setup_machine.yml

我的角色之一是在我的盒子上安装依赖项,所以为此我需要 sudo .因此,我的所有其他任务都需要包含该节:
   become: yes
become_user: my_username

有一个更好的方法吗 ?

最佳答案

您可以设置become每个选项:

  • 角色
  • 任务

  • 每次播放:
    - hosts: whatever
    become: true
    become_user: my_username
    roles:
    - checkout_sources
    - install_dependencies
    - make_dirs
    每个角色:
    - hosts: whatever
    roles:
    - checkout_sources
    - role: install_dependencies
    become: true
    become_user: my_username
    - make_dirs
    每个任务:
    - shell: do something
    become: true
    become_user: my_username
    你可以随意组合它。该剧可以作为用户 A 运行,作为用户 B 运行角色,最后作为用户 C 运行角色内的任务。
    定义 become很少需要每个戏剧或角色。如果角色中的单个任务需要 sudo,则应该只为该特定任务而不是角色定义它。
    如果一个角色内的多个任务需要 become , blocks派上用场以避免再次发生:
    - block:
    - shell: do something
    - shell: do something
    - shell: do something
    become: true
    become_user: my_username

    关于ansible - 无论如何,是否可以更有效地以多个用户的身份运行多个 Ansible 剧本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200337/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com