Топологія мережі
Ось, ansible-pc - це машина Debian 10, де ми встановимо Ansible.
Сервери 6f7c2 і 6b219 - це машини Debian 10, які ми налаштуємо для автоматизації Ansible. Я просто називатиму ці сервери Ansible hosts для цілей цієї статті.
Ми можемо використовувати Ansible з ansible-pc для автоматизації різних завдань в 6f7c2 і 6b219 Сервери Debian.
Встановлення Ansible
У цьому розділі я покажу вам, як встановити Ansible на ansible-pc.
Ви можете встановити Ansible на Debian 10 з офіційного сховища пакетів Debian.
Спочатку оновіть кеш сховища пакетів APT наступною командою:
$ sudo apt оновлення
Тепер встановіть Ansible за допомогою такої команди:
$ sudo apt install ansible
Щоб підтвердити встановлення, натисніть Y а потім натисніть
Слід встановити Ansible.
Тепер запустіть таку команду, щоб перевірити, чи правильно працює Ansible.
$ ansible --versionЯк бачите, команда ansible доступна і працює коректно. Відповідальний 2.7.7 - це остання версія Ansible, доступна у сховищі пакунків Debian на момент написання цієї статті.
Створення ключа SSH
На машині Debian 10 (ansible-pc) де ви встановили Ansible, спочатку потрібно сформувати ключ SSH.
Щоб сформувати ключ SSH, виконайте таку команду:
$ ssh-keygen
Тепер натисніть
Натисніть
Натисніть
Слід генерувати ключ SSH.
Налаштування хостів Debian для Ansible Automation
У цьому розділі я покажу вам, як налаштувати хост Debian для автоматизації Ansible. Якщо у вас кілька хостів, які ви хочете автоматизувати за допомогою Ansible, повторіть той самий процес для кожного з хостів.
Хости, яких ви хочете налаштувати для автоматизації Ansible, повинні мати попередньо встановлений пакет серверів SSH.
Спочатку оновіть кеш сховища пакетів APT наступною командою:
$ sudo apt оновлення
Потім встановіть сервер OpenSSH за допомогою такої команди:
$ sudo apt install openssh-server -y
У моєму випадку серверний пакет OpenSSH уже встановлений. Якщо він не встановлений у вашому випадку, його слід встановити до цього кроку.
Тепер перевірте, чи є sshd служба працює за допомогою такої команди:
$ sudo systemctl статус sshdЯк бачите, sshd послуга є активний (працює) і увімкнено (автоматично запускається під час завантаження системи).
Якщо sshd послуга є неактивний (працює), запустіть його вручну за допомогою такої команди:
$ sudo systemctl start sshd
Якщо sshd послуги немає увімкнено (не додано до запуску системи) у вашому випадку додайте його до запуску системи вручну за допомогою такої команди:
$ sudo systemctl увімкніть sshd
Тепер створіть ансибле користувача і дозволити без пароля доступ до sudo до ансибле користувач.
Для створення ансибле користувач, запустіть таку команду:
$ sudo adduser --shell / bin / bash --gecos "" ansible
Введіть пароль для ансибле користувача та натисніть
Повторно введіть пароль і натисніть
Ан ансибле користувач повинен бути створений.
Тепер, щоб дозволити без пароля доступ до sudo до ансибле користувач, відредагуйте / etc / sudoers файл із такою командою:
$ sudo visudo
Тепер додайте наступний рядок до / etc / sudoers файл.
ansible ALL = (ALL) NOPASSWD: ALLПотім збережіть файл, натиснувши
Тепер знайдіть IP-адресу хосту Ansible 6f7c2 з наступною командою:
$ hostname -IТут IP-адреса в моєму випадку є 192.168.20.167. Для вас це буде по-іншому. Отже, обов’язково замініть цю адресу на власну форму.
Копіювання відкритого ключа SSH на Ansible Host
З комп’ютера, де ви встановили Ansible (ansible-pc), скопіюйте відкритий ключ SSH на хост Ansible 6f7c2 наступним чином:
$ ssh-copy-id ansible @ 192.168.20.167
Введіть так та натисніть
Далі введіть пароль для ансибле користувача та натисніть
Відкритий ключ SSH слід скопіювати на Ansible хост 6f7c2.
Ви повинні мати можливість SSH на хості Ansible 6f7c2 як користувач ансибле без будь-якого пароля, як ви можете бачити на скріншоті нижче:
$ ssh ansible @ 192.168.20.167
Ви також повинні мати можливість запускати команди sudo без запиту пароля.
$ sudo ls /
Нарешті, закрийте сеанс SSH наступним чином:
$ вихід
Забезпечення відповідальних господарів
Як ансибле користувач може запускати будь-яку команду sudo без запиту пароля, ми налаштували логін на основі ключа SSH для хостів Ansible. Але ви все ще можете SSH перейти на Ansible хости як ансибле користувач, використовуючи пароль ансибле користувач. Отже, це не дуже безпечно.
Для поліпшення безпеки виконайте таку команду на Ansible хостах, щоб вимкнути вхід на основі пароля для ансибле користувач:
$ sudo usermod -L Ansible
Якщо згодом ви вирішите увімкнути вхід на основі пароля для ансибле user, запустіть на хості Ansible таку команду:
$ sudo usermod -U AnsibleТестування Ansible
Створіть новий каталог проекту ~ / проект / на машині Debian, де ви встановили Ansible (ansible-pc), використовуючи такий код:
$ mkdir ~ / проект
Перейдіть до ~ / проект / каталог, використовуючи такий код:
$ cd ~ / проект /
Створити нову господарі файл у каталозі проекту наступним чином:
$ нано-господарі
Тепер перелічіть IP-адреси або імена DNS хостів Ansible (6f7c2 і 6b219 у моєму випадку) в господарі файл:
192.168.20.167192.168.20.168
Закінчивши, збережіть файл, натиснувши
Щоб протестувати, спробуйте пінгувати всіх хостів за допомогою Ansible з таким кодом:
$ ansible -i ./ хости все -u ansible -m pingПРИМІТКА: Ось, -u параметр використовується для вказівки імені користувача (ансибле у цьому випадку), який Ansible використовуватиме для передачі SSH хостам.
Як бачите, Ansible може отримати доступ до всіх хостів. Отже, господарі готові до автоматизації Ansible.
Отже, саме так ви встановлюєте Ansible на Debian 10 і налаштовуєте хости Debian для автоматизації Ansible. Дякуємо, що прочитали цю статтю.