ansible:hosts_prepare
2. Подготовка хостов к управлению
На управляющей ноде:
# Создать пользователя ansible useradd ansible # Зайти из под пользователя ansible su - ansible # Сгенерировать включевую пару для ssh ssh-keygen
Подготавливаем playbook prepare_hosts.yml, который должен создать на удаленных нодах пользователя ansible, входящего в группу wheel, скопировать открытый ключ для доступа по ssh, разрешить sudo без пароля
- prepare_hosts.yml
--- - name: Prepare servers for Ansible hosts: all gather_facts: false tasks: - name: Create ansible user user: name: ansible groups: wheel - name: Setup public key for Ansible user authorized_key: user: ansible state: present key: "{{ lookup('file','/home/ansible/.ssh/id_rsa.pub') }}" - name: Create ansible sudoers file file: path: /etc/sudoers.d/ansible state: touch - name: Put info into file blockinfile: path: /etc/sudoers.d/ansible block: | # Set ansible user sudo without password %ansible ALL=(ALL) NOPASSWD: ALL
Выполним playbook из-под root (позже можно запретить пользователю root вход по ssh по паролю).
ansible-playbook prepare_hosts -u root --askpass
В случае успешного выполнения можно попробовать выполнить «пинг» удаленных нод уже из-под пользователя ansible.
ansible all -m ping
ansible/hosts_prepare.txt · Последнее изменение: 2024/12/21 19:00 — 127.0.0.1