我有下面的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/
答案 0 :(得分:2)
您可以将您的剧本分成几个文件,以使其更具可扩展性和组织性。您可以创建一个名为tasks的目录,并将它们包含在主剧本中,而不是将您的任务分组到一个文件中。在best practices中您有一个示例,但在您的情况下,您可以这样简单:
如果需要,您甚至可以在主要剧本中使用import个其他剧本。这取决于你的目标。