我有一个有 10 个节点的动态库存。其中 8 个是 RedHat,2 个是 Ubuntu。主机按随机顺序排列。我想写一个剧本,以便在所有 RedHat 节点都先修补之后,最后修补 Ubuntu 节点。我该如何为其编写剧本,而不是操纵库存?
我写了一本剧本,但不起作用。
您可以查看基于 ansible_facts
1.)
---
- hosts: all
become: true
gather_facts: true
tasks:
- name: Upgrade all packages
ansible.builtin.dnf:
name: "*"
state: latest
when: ansible_facts['os_family'] == "RedHat"
- name: Update all packages to their latest version
ansible.builtin.apt:
name: "*"
state: latest
when: ansible_facts['os_family'] == "Debian"
文档
2.)
取决于是否使用---
- name: Update RedHat-based systems
hosts: redhat
become: true
gather_facts: false
tasks:
- name: Upgrade all packages
ansible.builtin.dnf:
name: "*"
state: latest
- name: Update Debian-based systems
hosts: ubuntu
become: true
gather_facts: false
tasks:
- name: Upgrade all packages
ansible.builtin.dnf:
name: "*"
state: latest
文档
...以及更多构建升级过程的选项。