From: Guillaume Abrioux Date: Wed, 24 Jul 2019 08:39:47 +0000 (+0200) Subject: upgrade: add an infra playbook to migrate systemd units to podman X-Git-Tag: v5.0.0alpha1~85 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=f2017dcda276455e9fee42de1d593439cb94c0e9;p=ceph-ansible.git upgrade: add an infra playbook to migrate systemd units to podman this commit adds a new playbook to force systemd units for containers to use podman instead of docker. This is needed in the rhel8 upgrade context so after the base OS is upgraded containers can be started using podman. Signed-off-by: Guillaume Abrioux --- diff --git a/infrastructure-playbooks/docker-to-podman.yml b/infrastructure-playbooks/docker-to-podman.yml new file mode 100644 index 000000000..70d890d81 --- /dev/null +++ b/infrastructure-playbooks/docker-to-podman.yml @@ -0,0 +1,109 @@ +- hosts: + - mons + - osds + - mdss + - rgws + - nfss + - rbdmirrors + - clients + - iscsigws + - mgrs + - grafana-server + + gather_facts: false + become: True + any_errors_fatal: true + + vars: + delegate_facts_host: True + + pre_tasks: + - import_tasks: "{{ playbook_dir }}/../raw_install_python.yml" + + tasks: + # pre-tasks for following import - + - name: gather facts + setup: + when: not delegate_facts_host | bool + + - name: gather and delegate facts + setup: + delegate_to: "{{ item }}" + delegate_facts: True + with_items: "{{ groups['all'] }}" + run_once: true + when: delegate_facts_host | bool + +- hosts: + - "{{ mon_group_name | default('mons') }}" + - "{{ osd_group_name | default('osds') }}" + - "{{ mds_group_name | default('mdss') }}" + - "{{ rgw_group_name | default('rgws') }}" + - "{{ nfs_group_name | default('nfss') }}" + - "{{ mgr_group_name | default('mgrs') }}" + - "{{ iscsi_gw_group_name | default('iscsigws') }}" + - "{{ rbdmirror_group_name | default('rbdmirrors') }}" + become: true + vars: + docker2podman: True + container_binary: podman + container_binding_name: podman + container_service_name: podman + container_package_name: podman + pre_tasks: + - import_role: + name: ceph-defaults + - import_role: + name: ceph-facts + + - name: get docker version + command: docker --version + changed_when: false + check_mode: no + register: ceph_docker_version + + - name: set_fact ceph_docker_version ceph_docker_version.stdout.split + set_fact: + ceph_docker_version: "{{ ceph_docker_version.stdout.split(' ')[2] }}" + + + tasks: + - import_role: + name: ceph-mon + tasks_from: systemd.yml + when: inventory_hostname in groups.get(mon_group_name, []) + + - import_role: + name: ceph-iscsi-gw + tasks_from: container/systemd.yml + when: inventory_hostname in groups.get(iscsi_gw_group_name, []) + + - import_role: + name: ceph-mds + tasks_from: systemd.yml + when: inventory_hostname in groups.get(mds_group_name, []) + + - import_role: + name: ceph-mgr + tasks_from: systemd.yml + when: inventory_hostname in groups.get(mgr_group_name, []) + + - import_role: + name: ceph-nfs + tasks_from: systemd.yml + when: inventory_hostname in groups.get(nfs_group_name, []) + + - import_role: + name: ceph-osd + tasks_from: systemd.yml + when: inventory_hostname in groups.get(osd_group_name, []) + + - import_role: + name: ceph-rbd-mirror + tasks_from: container/systemd.yml + when: inventory_hostname in groups.get(rbdmirror_group_name, []) + + - import_role: + name: ceph-rgw + tasks_from: container/systemd.yml + when: inventory_hostname in groups.get(rgw_group_name, []) \ No newline at end of file