Add a role to disable glean
Also removes interface configuration files created by Glean as kayobe expects to manage all interfaces.
This commit is contained in:
parent
e2bb70db95
commit
dc7c2d9c6c
8
ansible/disable-glean.yml
Normal file
8
ansible/disable-glean.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
# Glean/simple-init is useful for reading configdrive data when provisioning
|
||||||
|
# servers but gets in the way after this as it tries to enable all network
|
||||||
|
# interfaces. In some cases this can lead to timeouts.
|
||||||
|
- name: Ensure Glean is disabled and its artifacts are removed
|
||||||
|
hosts: seed:controllers
|
||||||
|
roles:
|
||||||
|
- role: disable-glean
|
37
ansible/roles/disable-glean/README.md
Normal file
37
ansible/roles/disable-glean/README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Disable Glean
|
||||||
|
=============
|
||||||
|
|
||||||
|
Ansible role to disable services and remove artifacts left after using
|
||||||
|
[Glean](https://github.com/openstack-infra/glean>).
|
||||||
|
|
||||||
|
Glean enables DHCP on all network interfaces that are not explicitly
|
||||||
|
configured. If no DHCP server is configured to make an offer to these
|
||||||
|
interfaces, they will time out on boot and cause the network service to fail.
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Role Variables
|
||||||
|
--------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Example Playbook
|
||||||
|
----------------
|
||||||
|
|
||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- role: disable-glean
|
||||||
|
|
||||||
|
Author Information
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- Mark Goddard (<mark@stackhpc.com>)
|
4
ansible/roles/disable-glean/handlers/main.yml
Normal file
4
ansible/roles/disable-glean/handlers/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
- name: Reload systemd daemon
|
||||||
|
command: systemctl daemon-reload
|
||||||
|
become: True
|
38
ansible/roles/disable-glean/tasks/main.yml
Normal file
38
ansible/roles/disable-glean/tasks/main.yml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
- name: Check for existing Glean systemd services
|
||||||
|
command: systemctl list-units glean*.service --no-legend --no-pager
|
||||||
|
register: glean_services
|
||||||
|
changed_when: False
|
||||||
|
|
||||||
|
- name: Ensure Glean services are stopped and disabled
|
||||||
|
service:
|
||||||
|
name: "{{ item.split()[0] }}"
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
with_items: "{{ glean_services.stdout_lines }}"
|
||||||
|
|
||||||
|
- name: Find interface configuration files created by Glean
|
||||||
|
find:
|
||||||
|
path: "/etc/sysconfig/network-scripts"
|
||||||
|
pattern: "ifcfg-*"
|
||||||
|
# This comment is added by Glean to interface configuration files.
|
||||||
|
contains: "# Automatically generated, do not edit"
|
||||||
|
register: interface_configs
|
||||||
|
|
||||||
|
- name: Ensure interface configuration files created by Glean are removed
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: absent
|
||||||
|
with_items: "{{ interface_configs.files | map(attribute='path') | list }}"
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: Ensure Glean artifacts are removed
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: absent
|
||||||
|
with_items:
|
||||||
|
- "/usr/lib/systemd/system/glean@.service"
|
||||||
|
- "/etc/udev/rules.d/99-glean.rules"
|
||||||
|
become: True
|
||||||
|
notify:
|
||||||
|
- Reload systemd daemon
|
@ -256,7 +256,7 @@ class SeedHostConfigure(KollaAnsibleMixin, KayobeAnsibleMixin, VaultMixin,
|
|||||||
playbooks += _build_playbook_list("wipe-disks")
|
playbooks += _build_playbook_list("wipe-disks")
|
||||||
playbooks += _build_playbook_list(
|
playbooks += _build_playbook_list(
|
||||||
"dev-tools", "disable-selinux", "network", "ip-routing", "snat",
|
"dev-tools", "disable-selinux", "network", "ip-routing", "snat",
|
||||||
"ntp", "lvm")
|
"disable-glean", "ntp", "lvm")
|
||||||
self.run_kayobe_playbooks(parsed_args, playbooks, limit="seed")
|
self.run_kayobe_playbooks(parsed_args, playbooks, limit="seed")
|
||||||
self.run_kolla_ansible_seed(parsed_args, "bootstrap-servers",
|
self.run_kolla_ansible_seed(parsed_args, "bootstrap-servers",
|
||||||
extra_vars={"ansible_user": ansible_user})
|
extra_vars={"ansible_user": ansible_user})
|
||||||
@ -379,7 +379,8 @@ class OvercloudHostConfigure(KollaAnsibleMixin, KayobeAnsibleMixin, VaultMixin,
|
|||||||
if parsed_args.wipe_disks:
|
if parsed_args.wipe_disks:
|
||||||
playbooks += _build_playbook_list("wipe-disks")
|
playbooks += _build_playbook_list("wipe-disks")
|
||||||
playbooks += _build_playbook_list(
|
playbooks += _build_playbook_list(
|
||||||
"dev-tools", "disable-selinux", "network", "ntp", "lvm")
|
"dev-tools", "disable-selinux", "network", "disable-glean", "ntp",
|
||||||
|
"lvm")
|
||||||
self.run_kayobe_playbooks(parsed_args, playbooks, limit="controllers")
|
self.run_kayobe_playbooks(parsed_args, playbooks, limit="controllers")
|
||||||
extra_vars = {"ansible_user": ansible_user}
|
extra_vars = {"ansible_user": ansible_user}
|
||||||
self.run_kolla_ansible_overcloud(parsed_args, "bootstrap-servers",
|
self.run_kolla_ansible_overcloud(parsed_args, "bootstrap-servers",
|
||||||
|
Loading…
Reference in New Issue
Block a user