--- - name: ensure cloud-init packages are installed ansible.builtin.package: name: - cloud-init - cloud-utils-growpart - gdisk - name: enable cloud-init related services ansible.builtin.service: name: '{{ item }}' enabled: true loop: - cloud-init - cloud-init-local - cloud-config - cloud-final when: ansible_distribution_major_version|int >= 9 - name: cloud-init config block: - name: check for cloud.cfg file ansible.builtin.stat: path: /etc/cloud/cloud.cfg register: check_cloud_cfg - name: ensure root login block: - name: ensure root login is enabled in cloud-init config ansible.builtin.replace: path: /etc/cloud/cloud.cfg regexp: '^(disable_root\: ).*$' replace: '\1false' - name: ensure password login is enabled in cloud-init config ansible.builtin.replace: path: /etc/cloud/cloud.cfg regexp: '^(ssh_pwauth\: ).*$' replace: '\1true' when: check_cloud_cfg.stat.exists when: permit_root_login_with_password|bool - name: ensure script created block: - name: ensure cloud-init scripts directory exists ansible.builtin.file: path: /var/lib/cloud/scripts/per-instance state: directory mode: '0755' - name: create growpart cloud-init script to grow partition on boot ansible.builtin.template: src: grow_part.sh.j2 dest: /var/lib/cloud/scripts/per-instance/grow_part.sh mode: u=rwx,g=rx,o=rx # when: # - ansible_lvm is defined # - ansible_lvm.lvs is defined # - ansible_lvm.lvs[the_root_lvname] is defined # - ansible_lvm.lvs[the_root_lvname].vg is defined # - ansible_lvm.vgs is defined # - ansible_lvm.pvs is defined # - ansible_cmdline is defined # - ansible_cmdline.root is defined # - ansible_lvm.lvs[the_root_lvname].vg in ansible_cmdline.root