Ansible: создать пользователя с привилегиями sudo

Чтобы создать пользователя sudoers с привилегиями sudo, нужно ansible-playbook поместить пользователя в sudoers /etc/sudoers или сделать пользователя sudoers членом группы, указанной sudoers в /etc/sudoers. А чтобы сделать его без sudoers пароля, нужно дополнительно sudoers указать NOPASSWD в /etc/sudoers.

Пример /etc/sudoers:

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL

И вместо ansible-playbook того, чтобы возиться с файлом sudoers /etc/sudoers, мы можем создать новый ansible-playbook файл в каталоге /etc/sudoers.d/, поскольку ansible-playbook этот каталог по умолчанию ansible-playbook включен в /etc/sudoers, что исключает ansible-playbook возможность поломки существующего ansible-playbook файла sudoers, а также устраняет sudoers зависимость от содержимого sudoers внутри /etc/sudoers.

Чтобы добиться вышеуказанного ansible-playbook в Ansible, обратитесь к следующему:

- name: sudo without password for wheel group
  copy:
    content: '%wheel ALL=(ALL:ALL) NOPASSWD:ALL'
    dest: /etc/sudoers.d/wheel_nopasswd
    mode: 0440

Вы sudoers можете заменить %wheel другими sudoers именами групп, например %sudoers, или sudoers другими именами пользователей, например ansible-playbook deployer.

ansible-playbook

sudoers

2022-11-05T20:07:50+00:00
Вопросы с похожей тематикой, как у вопроса:

Ansible: создать пользователя с привилегиями sudo