diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ansible/playbooks/configure_undercloud.yml | 100 | ||||
-rw-r--r-- | lib/ansible/playbooks/deploy_dependencies.yml | 33 | ||||
-rw-r--r-- | lib/ansible/playbooks/deploy_overcloud.yml | 55 | ||||
-rw-r--r-- | lib/ansible/playbooks/k8s_remove_pkgs.yml | 5 | ||||
-rw-r--r-- | lib/ansible/playbooks/patch_containers.yml | 13 | ||||
-rw-r--r-- | lib/ansible/playbooks/post_deploy_overcloud.yml | 50 | ||||
-rw-r--r-- | lib/ansible/playbooks/post_deploy_undercloud.yml | 38 | ||||
-rw-r--r-- | lib/ansible/playbooks/prepare_overcloud_containers.yml | 77 | ||||
-rw-r--r-- | lib/ansible/playbooks/undercloud_aarch64.yml | 38 |
9 files changed, 248 insertions, 161 deletions
diff --git a/lib/ansible/playbooks/configure_undercloud.yml b/lib/ansible/playbooks/configure_undercloud.yml index 040a559e..07b82c8e 100644 --- a/lib/ansible/playbooks/configure_undercloud.yml +++ b/lib/ansible/playbooks/configure_undercloud.yml @@ -27,6 +27,13 @@ with_items: - controller - compute + - name: Copy container prep env file to undercloud + copy: + src: "{{ apex_temp_dir }}/containers-prepare-parameter.yaml" + dest: "/home/stack/containers-prepare-parameter.yaml" + owner: stack + group: stack + mode: 0644 - lineinfile: path: /etc/sudoers regexp: 'Defaults\s*requiretty' @@ -47,20 +54,9 @@ - name: openstack-configs undercloud shell: openstack-config --set undercloud.conf DEFAULT {{ item }} with_items: "{{ undercloud_config }}" - - name: Add ironic packages - yum: - name: openstack-ironic-api,openstack-ironic-common, - openstack-ironic-inspector - become: yes - - name: openstack-configs ironic - shell: openstack-config --set /etc/ironic/ironic.conf {{ item }} - become: yes - with_items: "{{ ironic_config }}" - - lineinfile: - path: /usr/lib/python2.7/site-packages/ironic/common/pxe_utils.py - regexp: '_link_ip_address_pxe_configs' - line: ' _link_mac_pxe_configs(task)' - when: aarch64 + - name: openstack-configs undercloud network + shell: openstack-config --set undercloud.conf ctlplane-subnet {{ item }} + with_items: "{{ undercloud_network_config }}" - block: - name: undercloud install shell: openstack undercloud install &> apex-undercloud-install.log @@ -77,40 +73,42 @@ src: /home/stack/apex-undercloud-install.log dest: "{{ apex_temp_dir }}/" flat: yes + - name: Install ceph-ansible + yum: + name: ceph-ansible + become: yes - name: openstack-configs nova - shell: openstack-config --set /etc/nova/nova.conf DEFAULT {{ item }} + shell: openstack-config --set /var/lib/config-data/nova/etc/nova/nova.conf DEFAULT {{ item }} become: yes with_items: "{{ nova_config }}" - name: restart nova services - service: - name: "{{ item }}" - state: restarted - enabled: yes + shell: "{{ container_client }} restart {{ item }}" with_items: - - openstack-nova-conductor - - openstack-nova-compute - - openstack-nova-api - - openstack-nova-scheduler + - nova_conductor + - nova_compute + - nova_api + - nova_scheduler + become: yes - name: openstack-configs neutron - shell: openstack-config --set /etc/neutron/neutron.conf DEFAULT {{ item }} + shell: openstack-config --set /var/lib/config-data/neutron/etc/neutron/neutron.conf DEFAULT {{ item }} become: yes with_items: "{{ neutron_config }}" - name: restart neutron services - service: - name: "{{ item }}" - state: restarted - enabled: yes + shell: "{{ container_client }} restart {{ item }}" with_items: - - neutron-server - - neutron-dhcp-agent - - name: Configure workaround for mariadb long blob (LP#1768913) - shell: openstack-config --set /etc/my.cnf.d/galera.cnf mysqld innodb_log_file_size 256M + - neutron_api + - neutron_dhcp become: yes - - name: restart mariadb service - service: - name: mariadb - state: restarted - enabled: yes + - name: openstack-configs ironic + shell: openstack-config --set /var/lib/config-data/ironic/etc/ironic/ironic.conf {{ item }} + become: yes + with_items: "{{ ironic_config }}" + - name: restart ironic services + shell: "{{ container_client }} restart {{ item }}" + with_items: + - ironic_api + - ironic_conductor + - ironic_inspector become: yes - name: configure external network vlan ifcfg template: @@ -135,21 +133,12 @@ when: - external_network.vlan == "native" - external_network.enabled - - not aarch64 - name: bring up eth2 shell: ip link set up dev eth2 when: - external_network.vlan == "native" - external_network.enabled - - not aarch64 - become: yes - - name: assign IP to native eth0 if aarch64 - shell: ip a a {{ external_network.ip }}/{{ external_network.prefix }} dev eth0 become: yes - when: - - external_network.vlan == "native" - - external_network.enabled - - aarch64 - name: bring up eth0 if aarch64 shell: ip link set up dev eth0 when: @@ -183,12 +172,22 @@ jump: ACCEPT source: "{{ nat_cidr }}" ctstate: ESTABLISHED,RELATED - - name: Undercloud NAT - Save iptables - shell: service iptables save become: yes when: - not nat_network_ipv6 - nat + - name: Allow SSH in iptables + iptables: + action: insert + chain: INPUT + rule_num: 1 + protocol: tcp + destination_port: 22 + jump: ACCEPT + become: yes + - name: Undercloud NAT - Save iptables + shell: service iptables save + become: yes - name: fetch storage environment file fetch: src: /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml @@ -196,9 +195,12 @@ flat: yes - name: fetch sriov environment file fetch: - src: /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-sriov.yaml + src: /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-opendaylight-sriov.yaml dest: "{{ apex_temp_dir }}/" flat: yes + - name: Restorecon for root ssh + shell: restorecon -r -v /root/.ssh + become: yes - include: undercloud_aarch64.yml when: aarch64 diff --git a/lib/ansible/playbooks/deploy_dependencies.yml b/lib/ansible/playbooks/deploy_dependencies.yml index fb1da46f..ab09ff6e 100644 --- a/lib/ansible/playbooks/deploy_dependencies.yml +++ b/lib/ansible/playbooks/deploy_dependencies.yml @@ -8,6 +8,25 @@ - python-lxml - libvirt-python - libguestfs-tools + - python-netaddr + - python2-pip + when: ansible_distribution == 'CentOS' + - dnf: + name: "{{ item }}" + state: present + with_items: + - libselinux-python + - python-lxml + - libvirt-python + - libguestfs-tools + - python-netaddr + - python2-pip + when: ansible_distribution == 'Fedora' + - pip: + name: ansible-modules-hashivault,hvac,Jinja2 + state: latest + executable: pip2 + when: not snapshot - sysctl: name: net.ipv4.ip_forward state: present @@ -32,20 +51,31 @@ xml: '{{ lookup("template", "virsh_network_default.xml.j2") }}' state: active autostart: yes + when: not snapshot - openvswitch_bridge: bridge: 'br-{{ item }}' state: present with_items: '{{ virsh_enabled_networks }}' + - name: 'Configure IP on bridge' + shell: 'ip addr add 192.0.2.99/24 dev br-{{ item }}' + with_items: '{{ virsh_enabled_networks }}' + when: snapshot + - name: 'Bring up bridge' + shell: 'ip link set up br-{{ item }}' + with_items: '{{ virsh_enabled_networks }}' + when: snapshot - virt_net: state: present name: '{{ item }}' xml: '{{ lookup("template", "virsh_network_ovs.xml.j2") }}' with_items: '{{ virsh_enabled_networks }}' + when: not snapshot - virt_net: state: active name: '{{ item }}' autostart: yes with_items: '{{ virsh_enabled_networks }}' + when: not snapshot - virt_pool: name: default autostart: yes @@ -81,16 +111,19 @@ state: present - name: Generate SSH key for root if missing shell: test -e ~/.ssh/id_rsa || ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa + when: not snapshot - name: Check that /u/l/python3.4/site-packages/virtualbmc/vbmc.py exists stat: path: /usr/lib/python3.4/site-packages/virtualbmc/vbmc.py register: vbmc_py + when: not snapshot - name: Manually patch vmbc to work with python3.x lineinfile: line: " conn.defineXML(ET.tostring(tree, encoding='unicode'))" regexp: "tostring" path: /usr/lib/python3.4/site-packages/virtualbmc/vbmc.py when: vbmc_py.stat.exists == True + when: not snapshot - name: Add ssh retry to Ansible config ini_file: path: /etc/ansible/ansible.cfg diff --git a/lib/ansible/playbooks/deploy_overcloud.yml b/lib/ansible/playbooks/deploy_overcloud.yml index a9c3b982..9a405814 100644 --- a/lib/ansible/playbooks/deploy_overcloud.yml +++ b/lib/ansible/playbooks/deploy_overcloud.yml @@ -12,10 +12,23 @@ - network-environment.yaml - instackenv.json - overcloud-full.qcow2 + - overcloud-full.vmlinuz + - overcloud-full.initrd + - ironic-python-agent.initramfs + - ironic-python-agent.kernel - deploy_command - virtual-environment.yaml - baremetal-environment.yaml + - kubernetes-environment.yaml - "{{ apex_env_file }}" + - name: Copy ansible.cfg data to undercloud in aarch64 + copy: + src: "{{ apex_temp_dir }}/ansible.cfg" + dest: "/home/stack/ansible.cfg" + owner: stack + group: stack + mode: 0644 + when: aarch64 - name: Copy network data to undercloud copy: src: "{{ apex_temp_dir }}/network_data.yaml" @@ -32,15 +45,10 @@ mode: 0664 - copy: src: "{{ apex_temp_dir }}/neutron-opendaylight-sriov.yaml" - dest: /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-sriov.yaml + dest: /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-opendaylight-sriov.yaml owner: root group: root mode: 0664 - - systemd: - name: openstack-swift-proxy - state: restarted - enabled: yes - become: yes - name: Remove Ceph OSD from ceph storage role lineinfile: path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml @@ -65,6 +73,22 @@ owner: root group: root become: yes + - name: Insert External network into Compute role + shell: | + ruby -e ' + require "yaml" + data = YAML.load(File.read("/usr/share/openstack-tripleo-heat-templates/roles_data.yaml")) + if data[1]["networks"].is_a?(Array) + data[1]["networks"].push("External") + elsif data[1]["networks"].is_a?(Hash) + data[1]["networks"].merge!("External"=> { "subnet" => "external_subnet" }) + else + raise "Unable to determine data to modify in roles_data.yaml" + end + data[1]["default_route_networks"] = Array.new(["External"]) + File.open("/usr/share/openstack-tripleo-heat-templates/roles_data.yaml", "w") { |f| f.write(data.to_yaml) } + ' + become: yes - name: Upload glance images shell: "{{ stackrc }} && openstack overcloud image upload" become: yes @@ -84,8 +108,25 @@ - baremetal - control - compute + - name: Re-enable ceph config for aarch64 + replace: + path: "/usr/share/ceph-ansible/roles/ceph-client/tasks/create_users_keys.yml" + regexp: "x86_64" + replace: "aarch64" + backup: yes + when: aarch64 - name: Configure DNS server for ctlplane network shell: "{{ stackrc }} && openstack subnet set ctlplane-subnet {{ dns_server_args }}" + - name: Update NIC templates before deployment + shell: > + /usr/share/openstack-tripleo-heat-templates/tools/merge-new-params-nic-config-script.py + -n /home/stack/network_data.yaml -t /home/stack/nics/{{ item }}.yaml --discard-comments True + --role-name Controller + become: yes + become_user: stack + with_items: + - controller + - compute - block: - name: Execute Overcloud Deployment shell: "{{ stackrc }} && bash deploy_command" @@ -112,7 +153,7 @@ become: yes - name: Show Keystone output shell: "{{ overcloudrc }} && {{ item }}" - when: debug + when: debug and vim == 'openstack' with_items: - openstack endpoint list - openstack service list diff --git a/lib/ansible/playbooks/k8s_remove_pkgs.yml b/lib/ansible/playbooks/k8s_remove_pkgs.yml new file mode 100644 index 00000000..f9fa7787 --- /dev/null +++ b/lib/ansible/playbooks/k8s_remove_pkgs.yml @@ -0,0 +1,5 @@ +--- +- hosts: all + tasks: + - name: Removing existing docker related packages + shell: "rpm -e --nodeps docker docker-common docker-client container-selinux" diff --git a/lib/ansible/playbooks/patch_containers.yml b/lib/ansible/playbooks/patch_containers.yml new file mode 100644 index 00000000..1ef05810 --- /dev/null +++ b/lib/ansible/playbooks/patch_containers.yml @@ -0,0 +1,13 @@ +--- + - name: "Pull docker image to ensure it exists locally: {{ item }}" + shell: "{{ container_client }} pull {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:current-tripleo" + - name: "Find docker image user {{ item }}" + shell: > + {{ container_client }} inspect --format='{{ '{{' }}.ContainerConfig.User{{ '}}' }}' + {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:current-tripleo + register: user_result + - name: "Patch docker image {{ item }}" + shell: > + cd /home/stack/containers/{{ item }} && {{ container_client }} build + --build-arg REAL_USER={{ user_result.stdout }} + -t {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex . diff --git a/lib/ansible/playbooks/post_deploy_overcloud.yml b/lib/ansible/playbooks/post_deploy_overcloud.yml index af743b29..2b90ab1f 100644 --- a/lib/ansible/playbooks/post_deploy_overcloud.yml +++ b/lib/ansible/playbooks/post_deploy_overcloud.yml @@ -13,15 +13,6 @@ - dataplane == 'ovs_dpdk' - "'compute' in ansible_hostname" - sdn == false - - name: SFC config workaround - file: - src: /etc/neutron/networking_sfc.conf - dest: /etc/neutron/conf.d/neutron-server/networking_sfc.conf - state: link - become: yes - when: - - sfc - - "'controller' in ansible_hostname" - name: Ensure ZRPCD is running shell: ps aux | grep zrpcd | grep -v grep ignore_errors: yes @@ -63,9 +54,42 @@ - openstack-nova-api - openstack-nova-scheduler - openstack-nova-conductor - - name: Restart Compute Nova Compute (Pike Workaround) - shell: "systemctl restart openstack-nova-compute" + - name: Restart Compute Nova Compute (workaround for NFS) + shell: "{{ container_client }} restart nova_compute" + become: yes + when: "'compute' in ansible_hostname or all_in_one" + - name: Update ODL container restart policy to always + shell: "{{ container_client }} update --restart=always opendaylight_api" become: yes when: - - "'compute' in ansible_hostname" - - os_version == 'pike' + - sdn == 'opendaylight' + - "'controller' in ansible_hostname" + - name: Open port 8101 (karaf shell) for ODL + iptables: + chain: INPUT + action: insert + protocol: tcp + destination_port: 8101 + jump: ACCEPT + rule_num: 1 + become: yes + when: + - sdn == 'opendaylight' + - "'controller' in ansible_hostname" + - name: save iptables + command: service iptables save + become: yes + - name: Modify nova metadata host to be IP + shell: > + crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/metadata_agent.ini + DEFAULT nova_metadata_host $(hiera -c /etc/puppet/hiera.yaml nova_metadata_vip) + become: yes + when: + - "'controller' in ansible_hostname" + - sdn != 'ovn' + - name: Restart metadata service + shell: "{{ container_client }} restart neutron_metadata_agent" + become: yes + when: + - "'controller' in ansible_hostname" + - sdn != 'ovn' diff --git a/lib/ansible/playbooks/post_deploy_undercloud.yml b/lib/ansible/playbooks/post_deploy_undercloud.yml index d0206f87..8cdfedfe 100644 --- a/lib/ansible/playbooks/post_deploy_undercloud.yml +++ b/lib/ansible/playbooks/post_deploy_undercloud.yml @@ -9,6 +9,7 @@ - name: Configure external network shell: "{{ overcloudrc }} && {{ item }}" with_items: "{{ external_network_cmds }}" + when: vim == 'openstack' - name: Configure gluon networks shell: "{{ overcloudrc }} && {{ item }}" when: gluon @@ -73,11 +74,35 @@ become: yes become_user: stack with_items: "{{ overcloudrc_files }}" + - name: Write SDN WEB and REST PORT to overcloudrc + lineinfile: + line: "export {{ item[0] }}=8081" + regexp: "{{ item[0] }}" + path: "/home/stack/{{ item[1] }}" + when: sdn != false + become: yes + become_user: stack + with_nested: + - [ 'SDN_CONTROLLER_WEBPORT', 'SDN_CONTROLLER_RESTCONFPORT' ] + - "{{ overcloudrc_files }}" + - name: Grab Heat Environment variables + shell: "{{ stackrc }} && openstack stack environment show overcloud -f json" + register: heat_env + become: yes + become_user: stack + - name: Write SDN controller password to overcloudrc for ODL + lineinfile: + line: "export SDN_CONTROLLER_PASSWORD={{(heat_env.stdout|from_json)['parameter_defaults']['OpenDaylightPassword']}}" + regexp: 'SDN_CONTROLLER_PASSWORD' + path: "/home/stack/{{ item }}" + when: sdn == 'opendaylight' + become: yes + become_user: stack + with_items: "{{ overcloudrc_files }}" - name: Register OS Region shell: "{{ overcloudrc }} && openstack endpoint list -c Region -f json" register: region - become: yes - become_user: stack + when: vim == 'openstack' - name: Write Region into overcloudrc lineinfile: line: "export OS_REGION_NAME={{(region.stdout|from_json)[1]['Region']}}" @@ -86,6 +111,7 @@ become: yes become_user: stack with_items: "{{ overcloudrc_files }}" + when: vim == 'openstack' - name: Create congress datasources shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}" become: yes @@ -95,6 +121,10 @@ ignore_errors: yes - name: Configure Calipso block: + - name: Install pip3 + yum: + name: python34-pip + state: present - name: Install Calipso dependencies pip: name: "{{ item }}" @@ -115,6 +145,8 @@ - docker-common - docker-selinux - docker-engine + - name: Add Docker CE repo + shell: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - name: Install Docker CE package: name: docker-ce @@ -128,6 +160,6 @@ command: > python3 /root/calipso-installer.py --command start-all --copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81 - --apiport 8001 --rabbitmport 15673 + --apiport 8001 --rabbitmport 15673 --home /root become: yes when: calipso diff --git a/lib/ansible/playbooks/prepare_overcloud_containers.yml b/lib/ansible/playbooks/prepare_overcloud_containers.yml index 79629c2b..ebf081dc 100644 --- a/lib/ansible/playbooks/prepare_overcloud_containers.yml +++ b/lib/ansible/playbooks/prepare_overcloud_containers.yml @@ -20,86 +20,31 @@ when: patched_docker_services|length > 0 - name: Prepare generic docker registry image file shell: > - {{ stackrc }} && openstack overcloud container image prepare - --namespace docker.io/tripleo{{ os_version }} - --tag {{ container_tag }} - --push-destination {{ undercloud_ip }}:8787 - -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml - --output-images-file overcloud_containers.yml - become: yes - become_user: stack - - name: Prepare SDN docker registry image file - shell: > - {{ stackrc }} && openstack overcloud container image prepare - --namespace docker.io/tripleo{{ os_version }} - --tag {{ container_tag }} - --push-destination {{ undercloud_ip }}:8787 - -e {{ sdn_env_file }} - --output-images-file sdn_containers.yml - become: yes - become_user: stack - when: sdn != false - - name: Upload docker images to local registry - shell: > - {{ stackrc }} && openstack overcloud container image upload - --config-file /home/stack/overcloud_containers.yml - - name: Upload SDN docker images to local registry - shell: > - {{ stackrc }} && openstack overcloud container image upload - --config-file /home/stack/sdn_containers.yml - when: sdn != false + sudo openstack tripleo container image prepare + -e /home/stack/containers-prepare-parameter.yaml + --output-env-file docker-images.yaml - name: Collect docker images in registry uri: url: http://{{ undercloud_ip }}:8787/v2/_catalog body_format: json register: response - - name: Patch Docker images - shell: > - cd /home/stack/containers/{{ item }} && docker build - -t {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex . + - include_tasks: patch_containers.yml + with_items: "{{ patched_docker_services }}" + loop_control: + loop_var: item when: - patched_docker_services|length > 0 - item in (response.json)['repositories']|join(" ") - with_items: "{{ patched_docker_services }}" - name: Push patched docker images to local registry - shell: docker push {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex + shell: "{{ container_client }} push {{ undercloud_ip }}:8787/tripleo{{ os_version }}/centos-binary-{{ item }}:apex" when: - patched_docker_services|length > 0 - item in (response.json)['repositories']|join(" ") with_items: "{{ patched_docker_services }}" - - name: Prepare deployment generic docker image file - shell: > - {{ stackrc }} && openstack overcloud container image prepare - --namespace {{ undercloud_ip }}:8787/tripleo{{ os_version }} - --tag {{ container_tag }} - -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml - --output-env-file docker-images.yaml - become: yes - become_user: stack - - name: Prepare deployment SDN docker image file - shell: > - {{ stackrc }} && openstack overcloud container image prepare - --namespace {{ undercloud_ip }}:8787/tripleo{{ os_version }} - --tag {{ container_tag }} - -e {{ sdn_env_file }} - --output-env-file sdn-images.yaml - when: sdn != false - become: yes - become_user: stack - name: Modify Images with Apex tag replace: - path: "{{ item[0] }}" - regexp: "(\\s*Docker.*?:.*?centos-binary-{{ item[1] }}):.*" + path: "/home/stack/docker-images.yaml" + regexp: "(\\s*Docker.*?:.*?centos-binary-{{ item }}):.*" replace: '\1:apex' - with_nested: - - [ '/home/stack/sdn-images.yaml', '/home/stack/docker-images.yaml'] - - "{{ patched_docker_services }}" - - name: Pull Ceph docker image - shell: docker pull {{ ceph_docker_image }} - become: yes - - name: Tag Ceph image for local registry - shell: docker tag {{ ceph_docker_image }} {{ undercloud_ip }}:8787/{{ ceph_docker_image }} - become: yes - - name: Push Ceph docker image to local registry - shell: docker push {{ undercloud_ip }}:8787/{{ ceph_docker_image }} + with_items: "{{ patched_docker_services }}" become: yes diff --git a/lib/ansible/playbooks/undercloud_aarch64.yml b/lib/ansible/playbooks/undercloud_aarch64.yml index ddaf1b04..efcbdabd 100644 --- a/lib/ansible/playbooks/undercloud_aarch64.yml +++ b/lib/ansible/playbooks/undercloud_aarch64.yml @@ -3,13 +3,12 @@ tasks: - name: aarch64 configuration block: - - shell: yum -y reinstall grub2-efi shim - copy: src: /boot/efi/EFI/centos/grubaa64.efi - dest: /tftpboot/grubaa64.efi + dest: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/grubaa64.efi remote_src: yes - file: - path: /tftpboot/EFI/centos + path: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/EFI/centos state: directory mode: 0755 - copy: @@ -18,32 +17,25 @@ set timeout=5 set hidden_timeout_quiet=false menuentry "local" { - configfile (hd0,gpt3)/boot/grub2/grub.cfg + configfile /var/lib/ironic/tftpboot/$net_default_mac.conf } - dest: /tftpboot/EFI/centos/grub.cfg + dest: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/EFI/centos/grub.cfg mode: 0644 - - shell: 'openstack-config --set /etc/ironic/ironic.conf pxe uefi_pxe_bootfile_name grubaa64.efi' - - shell: 'openstack-config --set /etc/ironic/ironic.conf pxe uefi_pxe_config_template \$pybasedir/drivers/modules/pxe_grub_config.template' - - - systemd: - name: openstack-ironic-conductor - state: restarted - enabled: yes - - replace: - path: /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template - regexp: 'linuxefi' - replace: 'linux' - - replace: - path: /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template - regexp: 'initrdefi' - replace: 'initrd' + - shell: 'sudo crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf pxe pxe_bootfile_name_by_arch aarch64:grubaa64.efi' + - shell: 'sudo crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf pxe pxe_config_template_by_arch aarch64:\$pybasedir/drivers/modules/pxe_grub_config.template' + - shell: 'docker exec -u root ironic_conductor sed -i "s/initrdefi/initrd/g" /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template' + - shell: 'docker exec -u root ironic_conductor sed -i "s/linuxefi/linux/g" /usr/lib/python2.7/site-packages/ironic/drivers/modules/pxe_grub_config.template' - lineinfile: - path: /tftpboot/map-file + path: /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/map-file insertafter: EOF state: present line: '' - - shell: "echo 'r ^/EFI/centos/grub.cfg-(.*) /tftpboot/pxelinux.cfg/\\1' | sudo tee --append /tftpboot/map-file" - - shell: "echo 'r ^/EFI/centos/grub.cfg /tftpboot/EFI/centos/grub.cfg' | sudo tee --append /tftpboot/map-file" + - shell: "echo 'r ^/EFI/centos/grub.cfg-(.*) /var/lib/ironic/tftpboot/pxelinux.cfg/\\1' | sudo tee --append /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/map-file" + - shell: "echo 'r ^/EFI/centos/grub.cfg /var/lib/ironic/tftpboot/EFI/centos/grub.cfg' | sudo tee --append /var/lib/config-data/puppet-generated/ironic/var/lib/ironic/tftpboot/map-file" + - shell: "docker restart {{ item }}" + with_items: + - ironic_conductor + - ironic_pxe_tftp - systemd: name: xinetd state: restarted |