cb48f7e5d2
Ansible failure handling is different when executing multiple top-level playbooks (CLI arguments) vs. multiple plays within a top-level playbook. If any hosts have failed or are unreachable at the end of a top-level playbook, then ansible-playbook exits non-zero. In contrast, execution will continue at the end of a mid-playbook play if there are hosts that have not failed or become unreachable. This is documented in [1]. Currently, Kayobe executes multiple top-level playbooks, most notably in the host configure commands where there is a long list of them. This has implications when working at scale, where failures are more common. If a host fails at any point, then execution of the command will stop at the end of the current playbook. This means that the command must be run again for all hosts. Additionally, if any hosts are unreachable, then the command is unable to progress at all without removing them from the inventory. This change refactors the host configure and host upgrade commands to use a single top-level playbook. [1] https://github.com/markgoddard/ansible-experiments/tree/master/14-error-handling Story: 2009854 Task: 44482 Change-Id: Ia63d66097b10b6ddda30ad693636143f8b1a85e0
28 lines
916 B
YAML
28 lines
916 B
YAML
---
|
|
- import_playbook: "ssh-known-host.yml"
|
|
- import_playbook: "kayobe-ansible-user.yml"
|
|
- import_playbook: "proxy.yml"
|
|
- import_playbook: "apt.yml"
|
|
- import_playbook: "dnf.yml"
|
|
- import_playbook: "pip.yml"
|
|
- import_playbook: "kayobe-target-venv.yml"
|
|
- import_playbook: "wipe-disks.yml"
|
|
- import_playbook: "users.yml"
|
|
- import_playbook: "dev-tools.yml"
|
|
- import_playbook: "disable-selinux.yml"
|
|
- import_playbook: "network.yml"
|
|
- import_playbook: "firewall.yml"
|
|
- import_playbook: "tuned.yml"
|
|
- import_playbook: "sysctl.yml"
|
|
- import_playbook: "ip-routing.yml"
|
|
- import_playbook: "snat.yml"
|
|
- import_playbook: "disable-glean.yml"
|
|
- import_playbook: "time.yml"
|
|
- import_playbook: "mdadm.yml"
|
|
- import_playbook: "luks.yml"
|
|
- import_playbook: "lvm.yml"
|
|
- import_playbook: "docker-devicemapper.yml"
|
|
- import_playbook: "kolla-ansible-user.yml"
|
|
- import_playbook: "kolla-pip.yml"
|
|
- import_playbook: "kolla-target-venv.yml"
|