在ansible playbooks中组织/优化逻辑

问题描述 投票:0回答:1

我有下面的ansible剧本。它完成了它的工作,但我想知道是否可以改进维护,冗余,可读性,格式化等。

我有点担心我目前的做法会导致一些杂乱无章的剧本,所以我们非常欢迎任何建议/建议让这个更易于理解。

---
# Below will do:
#
# 1) Install nano
# 2) Create 2 users with password, home dir and add to sudoers
# 3) Set password for root user
# 4) Copy private/public key pair and authorized_keys to users home dir.


- hosts: cont
  any_errors_fatal: true 
  user: root

  vars:
    password: $6$BqaK91TChphw6$EJRKoOD87VneNhASOh25b7sPg4xVzmE3noeXwgJGhTfs6ROVlh4ptLcXrBpRSAQ.9TdqOCzJmvNmQAdLVl5OR.
    root_password: $6$BqaK91TChphw6$haQjB0BdF6pAfUe5FicDM8w.rC34WX2a5y0Tvt1xdJLZVPRmGsphh2Pj.1HIiynCPAkJHPBQJe1PV0utVJ1781
    users:
      - username: usera
      - username: userb
  tasks:

  - name: Install the package "nano"
    apt:
      name: nano


  - name: Change password for root user
    user: name=root
          password={{root_password}}
  - name: Add users | create users, shell, home dirs
    user: name={{ item.username }}
          groups="sudo"
          password={{password}}
          shell=/bin/bash
          createhome=yes
          comment='created with ansible'
    with_items: '{{users}}'

  - name: Copy private/public key to home dir for users
    copy:
      src=../linux-files/user/.ssh
      dest=/home/{{ item.username }}/
      owner={{ item.username }}
      group={{ item.username }}
    with_items: '{{users}}'      

  - name: Copy private/public key to home dir for root
    copy:
      src: ../linux-files/root/.ssh
      dest: /home/root/
ansible
1个回答
2
投票

您可以将您的剧本分成几个文件,以使其更具可扩展性和组织性。您可以创建一个名为tasks的目录,并将它们包含在主剧本中,而不是将您的任务分组到一个文件中。在best practices你有一个例子,但在你的情况下,你可以这么简单:

  • vars:包含你的vars的目录
  • main.yaml:你的实际剧本
  • 角色 任务:包含您的任务的目录和使用import_tasks的主要yaml

如果需要,您甚至可以在主要剧本中使用import其他剧本。这取决于你的目标。

© www.soinside.com 2019 - 2024. All rights reserved.