Топологія мережі:
Ось, linuxhint-711ea є Ubuntu 20.04 LTS машина, де я буду встановлювати Ansible.
Потім я налаштую хости хост1 (IP-адреса 192.168.20.162) та host2 (IP-адреса 192.168.20.153) для автоматизації Ansible та запускати на них команди, використовуючи Ansible з linuxhint-711ea машина.
Я просто зателефоную хост1 і host2 як Ansible хости в цій статті.
Встановлення Ansible:
Ви можете легко встановити Ansible на Ubuntu 20.04 LTS з офіційного сховища пакетів Ubuntu.
Спочатку оновіть кеш сховища пакетів APT наступною командою:
$ sudo apt оновлення
Потрібно оновити кеш сховища пакетів APT.
Тепер встановіть Ansible за допомогою такої команди:
$ sudo apt install ansible
Щоб підтвердити встановлення, натисніть Y а потім натисніть
Слід встановити Ansible.
Тепер запустіть таку команду, щоб перевірити, чи правильно працює ansible.
$ ansible --versionЯк бачите, команда ansible доступна і працює коректно.
Генерування ключа SSH:
Тепер вам потрібно згенерувати ключ SSH на комп’ютері, де ви встановили Ansible.
Щоб сформувати ключ SSH, виконайте таку команду:
$ ssh-keygen
Тепер натисніть
Натисніть
Натисніть
Слід генерувати ключ SSH.
Налаштування хостів Ubuntu для Ansible Automation:
У цьому розділі я покажу вам, як налаштувати хост Ubuntu (хост1) для Ansible автоматизації. Якщо у вас є кілька хостів, які ви хочете автоматизувати за допомогою Ansible, повторіть той самий процес на кожному з хостів.
На хостах Ubuntu 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Тепер налаштуйте брандмауер, щоб дозволити доступ SSH за допомогою такої команди:
$ sudo ufw allow ssh
Вам також слід створити файл ансибле користувача і дозволити без пароля доступ до sudo до ансибле користувач.
Для створення ансибле користувач, запустіть таку команду:
$ sudo adduser ansible
Тепер введіть пароль для ансибле користувача та натисніть
Тепер повторно введіть пароль і натисніть
Тепер натисніть
Тепер натисніть
Тепер натисніть
Тепер натисніть
Тепер натисніть
Тепер введіть р а потім натисніть
Ан ансибле користувач повинен бути створений.
Тепер налаштуйте доступ до sudo без пароля ансибле користувач із наступною командою:
$ echo "ansible ALL = (ALL) NOPASSWD: ALL" | sudo tee / etc / sudoers.г / ансіблі
Тепер знайдіть IP-адресу хосту Ansible (хост1) з наступною командою:
$ hostname -IТут IP-адреса в моєму випадку є 192.168.20.162. Для вас це буде по-іншому. Отже, не забудьте замінити його на вашу форму зараз.
Тепер з комп’ютера, на якому ви встановили Ansible, скопіюйте відкритий ключ SSH на хост Ansible (хост1) наступним чином:
$ ssh-copy-id ansible @ 192.168.20.162
Введіть так та натисніть
Тепер введіть пароль для ансибле користувача та натисніть
Відкритий ключ SSH слід скопіювати в хост1.
Тепер вимкніть вхід на основі пароля для ансибле користувач із наступною командою:
$ sudo usermod -L Ansible
Тепер ви можете лише SSH в хості Ansible (хост1) як ансибле користувач без будь-якого пароля від комп’ютера, з якого ви скопіювали відкритий ключ SSH (у цьому випадку комп’ютера, на якому ви встановили Ansible). Але ви не зможете отримати SSH на хості Ansible (хост1) як ансибле користувач з будь-якого іншого комп'ютера. Я налаштував хости Ansible таким чином з міркувань безпеки. Як ансибле користувачеві не потрібен пароль для запуску адміністративних команд, ризиковано дозволити вхід на основі пароля для ансибле користувач.
Тепер ви повинні мати можливість SSH на хості ansible хост1 з комп’ютера, де ви встановили Ansible, наступним чином:
$ ssh ansible @ 192.168.20.162
Як бачите, я можу отримати доступ до хосту Ansible (хост1) як відповідальний користувач без будь-якого пароля. Отже, хост Ansible (хост1) готовий до автоматизації Ansible.
Якщо з якихось причин ви хочете дозволити вхід на основі пароля для ансибле користувач знову запустіть таку команду в Ansible хості (хост1):
$ sudo usermod -U Ansible
Ви можете налаштувати скільки завгодно хостів для автоматизації Ansible таким же чином.
У цій статті я налаштував лише 2 хости, хост1 і host2 для демонстрації.
Тестування Ansible:
Тепер створіть новий каталог проекту ~ / ansible-demo / на комп’ютері, де ви встановили Ansible, наступним чином:
$ mkdir ~ / ansible-demo
Тепер перейдіть до ~ / ansible-demo / каталог наступним чином:
$ cd ~ / ansible-demo /
Тепер створіть новий господарі файл у каталозі проекту наступним чином:
$ нано-господарі
Тепер введіть IP-адреси або імена DNS хостів Ansible (хост1 і host2 у моєму випадку) в господарі файл наступним чином:
192.168.20.162192.168.20.153
Тепер збережіть файл, натиснувши
Тепер спробуйте пінгувати всіх хостів за допомогою Ansible наступним чином:
$ ansible все -i ./ hosts -u ansible -m pingПРИМІТКА: Тут параметр -u використовується для вказівки імені користувача (у цьому випадку ansible), яке Ansible використовуватиме для SSH на хостах.
Як бачите, усіх господарів можна пінгувати. Отже, господарі готові до автоматизації Ansible.
Таким же чином ви можете запустити будь-яку команду на хостах, використовуючи Ansible наступним чином:
$ ansible все -i ./ hosts -u ansible -m shell -a 'echo "$ (ім'я хосту) - $ (ім'я хоста -I)"'
Як бачите, команда успішно виконана на кожному з хостів і виводиться результат.
Отже, ось як ви встановлюєте Ansible на Ubuntu 20.04 LTS та налаштуйте Ubuntu 20.04 LTS хости для Ansible автоматизації. Дякуємо, що прочитали цю статтю.