Hi all,

I'm using ansible to set up lxc containers, using delegation to the container host.

One task looks like this:

- name: add ansible user to sudoers
  lineinfile:
    dest: "/var/lib/lxc/{{ inventory_hostname }}/rootfs/etc/sudoers"
    state: present
    regexp: "^ansible"
    line: 'ansible ALL=(ALL) NOPASSWD: ALL'
    insertafter: '^root'
    validate: '/usr/sbin/visudo -cf %s'
  delegate_to: "{{ container_host }}"
  when: start_container|bool

That has been working fine, until I tried to create a debian bullseye container on a buster host. Unfortunately, the sudoers format has changed slightly, so the buster visudo won't accept the bullseye sudoers file (#includedir is now @includedir).

I tried giving the path to the bullseye visudo, but it's dynamically linked and doesn't work on the buster system.

I could potentially use the lxc_container module to run a command in the container, but that means I lose lineinfile, and have to do more stuff manually.

Or I could use my temporary workaround, and just assume my sudoers file is ok, and skip validation.

Another option is to add an extra lineinfile task (before that one) to replace @includedir with #includedir, since it's backwards compatible, but that seems too hackish.

Any other suggestions?

Cheers,
Richard

--
You received this message because you are subscribed to the Google Groups "Ansible 
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/39771264-b079-ff6e-15a6-e018d95dd6fd%40walnut.gen.nz.

Reply via email to