Инструменты пользователя

Инструменты сайта


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