Ubuntu 20 上的 Ansible 剧本

Ubuntu 20 上的 Ansible 剧本

如何编写 Ansible Playbook 在 Ubuntu 20.04 上的不同主机上安装不同的应用程序条件

  1. 运行剧本时,它应该询问主机名(我们必须提供具体的主机名)

对于所有的包裹,我们必须给出像 1、2、3 这样的数字......

给出主机名后,它应该要求提供软件包编号,那时我们应该给出该编号,特定的软件包应该安装在特定的主机上

答案1

我会组织我的 Ansible 存储库,为每个软件设置单独的角色,然后使用模块ansible_hostname事实gather_facts作为条件为特定主机安装软件。我会采用如下文件夹结构:

└── ansible_repo
    ├── roles
    │   ├── vim
    │   │   └── tasks
    │   │       └── main.yml
    │   ├── tmux
    │   │   └── tasks
    │   │       └── main.yml
    │   └── vlc
    │       └── tasks
    │           └── main.yml
    ├── inventory
    └── playbook.yml

遗嘱内容playbook.yml大致如下:

# playbook.yml
- hosts: all
  become: true
# run roles
- hosts: all
  roles:
    - vim
    - tmux
    - vlc

每个任务里面main.yml都会遵循这个模板(使用 vim):

---
# tasks file for vim

- name: Install vim
  apt:
    name:
      - vim
    when gather_facts.ansible_hostname = "host1" or "host3"

inventory您也可以将主机名存储在文件中。

虽然这种方法可行,但我认为这不是最佳做法。更好的方法是根据主机所需的软件包对其进行分组,然后为该组使用特定角色。

相关内容