ansible tutorial installation
Посібник з Ansible з підключенням Ansible, використання та налаштування за допомогою Ansible Modules:
Ми обговорювали про Еластична квасоля AWS у нашому попередньому уроці.
СПИСОК підручників у цій серії Ansible:
Підручник No1: Відповідальна установка та модулі
Підручник No2: Відповідні іграшки та сховища
Підручник No3: Відповідальні ролі та інтеграція з Дженкінсом
Ansible - це інструмент з відкритим кодом, який допомагає в автоматизації завдань, розгортанні додатків, хмарному забезпеченні та керуванні конфігурацією.
Також прочитайте => Список навчальних посібників DevOps
Отже, мова йде про ІТ-оркестрацію, де завдання виконуються послідовно на декількох різних машинах або серверах.
Ansible робить це, підключаючись до декількох машин за допомогою SSH, і запускає завдання, які були налаштовані в playbooks і використовує просту мову, яка називається YAML (ще одна мова розмітки) .
Що ви дізнаєтесь:
- Огляд Ansible
- Процес установки Ansible
- Відповідне використання
- Відповідальні модулі
- Резюме
- Рекомендована література
Огляд Ansible
Найголовніше, що Ansible не використовує агента для автоматизації завдань на різних машинах.
Ansible забезпечує підтримку точних версій та актуальної інформації до програмних пакетів.
Наприклад , якщо ви хочете встановити JDK 8 або Tomcat або будь-який інший пакет програм на 10 або 20 різних машинах, насправді неможливо перейти до всіх машин та встановити їх, скоріше використовуйте Ansible для автоматизації встановлення або навіть розгортання програмного забезпечення за допомогою Playbooks та Inventory написаний дуже простою мовою.
Отже, Ansible:
- Безкоштовний та відкритий код
- Підтримується Redhat
- По суті конфігурація сервера
- Управління конфігурацією
У цій 3-частинній серії підручників Ansible ми обговоримо практичний підхід щодо таких тем:
- Процес інсталяції та конфігурації
- Інвентар
- Відповідальні модулі
- Спеціальні команди,
- Автоматизація завдань за допомогою ігрових книжок
- Відповідальні ролі
- Відповідне склепіння
- Ansible та AWS
Процес установки Ansible
Ansible можна встановити та запустити з будь-якої машини.
Зазвичай вам знадобиться a Контрольна машина для інсталяції, яка повинна бути Linux. Машина Windows не підтримує керування машиною. Машина управління буде керувати іншими віддаленими машинами. Як вже згадувалося раніше, Ansible використовує SSH для управління віддаленими машинами.
Протягом цього посібника я буду використовувати екземпляри AWS EC2 для демонстрації прикладів. Я використав 2 екземпляри (одну машину управління, а іншу - як ціль для автоматизації завдань) та Redhat Linux 7.5.
як відкрити .bin файли -
Будь то локальні чи хмарні екземпляри, вам потрібно буде відкрити порти належним чином на основі автоматизованих завдань. У мене є наступні порти, відкриті як частина групи безпеки для екземплярів EC2, щоб продемонструвати приклади, згадані в навчальному посібнику.
На наведеному вище екрані я згадав про відкриття порту 8080, оскільки я покажу про автоматизацію автоматизації розгортання програмного забезпечення за допомогою Tomcat, що буде корисно з точки зору DevOps, особливо під час безперервного процесу доставки.
Встановлення Ansible за допомогою YUM
Як вже згадувалося раніше, я буду використовувати одну машину управління та цільову машину. Для початку встановлення виконайте кроки, як показано нижче, на обох машинах.
до) Створіть загальний ідентифікатор на обох машинах, для Приклад , ансибле з привілеями SUDO. Цей ідентифікатор буде використовуватися для спілкування на всіх машинах, задіяних для автоматизації завдань.
# useradd ansible # passwd ansible
б) Відредагуйте / etc / ssh / sshd_config файл на машина управління і прокоментуйте рядки для PasswordAuthentication та PermitRootLogin
Виконайте наведені вище дії на обох машинах. Після завершення перезапустіть sshd обслуговування на обох машинах.
# systemctl restart sshd
в) Для повної автоматизації завдань нам знадобиться безпарольна аутентифікація SSH, інакше весь процес не використовуватиметься, якщо вам доведеться щоразу вводити пароль.
Тож опублікуйте внесені вище зміни, якщо ми запускаємо команди ssh і ssh, нам потрібно буде вводити пароль кожного разу, що не є правильною процедурою для виконання завдань Ansible.
г) Щоб увімкнути автентифікацію без пароля, виконайте наведені нижче дії. Спочатку додайте користувача ансибле до / etc / sudoers файл на обох машинах, що дозволить користувачеві ансибле для запуску будь-якої команди, яка вимагає привілеїв root.
Збережіть і закрийте файл після додавання користувача.
є) Надалі ми використовуватимемо користувача ансибле виконати всі дії. Тож перейдіть до користувача ансибле.
Машина управління відповідальна І Цільова машина відповідна
Машина управління ssh-кейген
Цільова машина ssh-кейген
Скопіюйте ключ ssh на цільову машину і навпаки.
Машина управління ssh-copy-id
Цільова машина ssh-copy-id
Тепер ми можемо увійти без введення пароля. Після перевірки підключення ssh на обох машинах і увійдіть як користувач, що відповідає.
Машина управління: ssh ansible @
Цільова машина: ssh ansible @
f) Встановіть wget, якщо він не встановлений на обох машинах.
$ sudo yum install wget -y
g) Тепер ми можемо встановити ансибле лише на контрольній машині увімкнувши репозиторій EPEL з Fedora, який надає додаткові програмні пакети. Для встановлення виконайте наступні дії МОЖЛИВО.
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install ansible -y $ ansible --version
Використовувана версія ansible - 2.5.3
h) Відредагуйте ansible.cfg файл та увімкніть параметр файлу інвентаризації на машині керування.
$ sudo vi /etc/ansible/ansible.cfg
i) Ansible використовує концепцію Інвентаризації для управління та відстеження цільових машин. За замовчуванням цей файл знаходиться в / etc / ansible / hosts і також може бути змінений. Файл хоста складається з груп для кращої класифікації та декількох машин у групі. До цих груп можна додати всі необхідні машини.
Кожна група позначається квадратною дужкою та назвою групи всередині. Сервер насправді може існувати в декількох групах.
Відредагуйте файл інвентаризації / etc / ansible / hosts і додайте всі сервери, якими потрібно керувати.
j) Щоб перевірити підключення серверів у групі веб-сервера, запустіть ansible ping команда, як показано. Ось пінг це модуль, який виконує певну функцію для перевірки того, чи можна підключити хости, як визначено у файлі інвентаризації чи ні. Докладніше про різні модулі та їх приклади ми побачимо в наступному розділі.
$ ansible webservers –m ping
Щоб перелічити хости у файлі інвентаризації, ви можете виконати наведену нижче команду
$ ansible webservers --list-hosts
Відповідне використання
Ansible складається з 3 основних компонентів
- Машина управління
- Інвентар
- Playbook
Контрольна машина керує виконанням Playbook. Його можна встановити на ноутбук або на будь-яку машину в Інтернеті.
Файл інвентаризації містить повний перелік усіх цільових машин, на яких запущено різні модулі, встановивши з'єднання ssh та встановивши необхідне програмне забезпечення.
Книга ігор складається з кроків, які механізм управління виконуватиме на серверах, визначених у файлі інвентаризації.
Дуже важливо зрозуміти, що Ansible взаємодіє з усіма серверами, визначеними в інвентаризації, за допомогою протоколу SSH, який є безпечним методом віддаленого входу. Кожна операція виконується, а передача файлів шифрується.
Отже, як ви могли б бачити в попередньому розділі, Ansible не використовує будь-яку базу даних для встановлення, і її дуже легко встановити, тепер ми перейдемо до фактичного використання Ansible, починаючи з модулів, які є основним будівельним блоком.
Відповідальні модулі
Модулі є основними будівельними блоками Ansible і в основному є сценаріями багаторазового використання, які використовуються ігровими книгами Ansible. Ansible поставляється з низкою багаторазових модулів. Сюди входять функціонал для управління послугами, встановлення програмного пакету, робота з файлами та каталогами тощо.
Синтаксис виглядає наступним чином під час запуску спеціальних команд, які допомагають виконувати окремі або прості завдання лише один раз і які не потрібно запускати пізніше. Для Наприклад просто встановлюючи Tomcat на всі сервери.
ansible hostORgroup -m module_name -a 'arguments' -u username --become
Давайте подивимось на деякі найпопулярніші модулі Ansible та їх використання за допомогою спеціальних команд, а пізніше в ігровій книзі.
# 1) Модуль налаштування
Щоб отримати інформацію про мережу, апаратне забезпечення, версію ОС чи інформацію, пов’язану з пам’яттю, модуль налаштування допоможе зібрати те саме про цільові машини. На елементі управління машина виконує наведену нижче команду.
$ ansible webservers –m setup
# 2) Командний модуль
Командний модуль просто виконує певну команду на цільовій машині і видає результат.
Деякі приклади наведені нижче
$ ansible webservers –m command - an ‘uptime’ $ ansible webservers –m command –a ‘hostname’
# 3) Модуль оболонки
Для виконання будь-якої команди в обраній вами оболонці ви можете використовувати модуль Shell. Команди модуля оболонки запускаються в оболонці / bin / sh, і ви можете використовувати оператори, такі як ‘>’ або ‘|’ (символ конвеєра або навіть змінні середовища.
Отже, в першу чергу різниця між модулем Shell і Command полягає в тому, що якщо вам насправді не потрібно використовувати такі оператори, як згадані, ви можете використовувати командний модуль.
$ ansible webservers -m shell -a 'ls -l > temp.txt'
На машинах групи веб-серверів перевірте створений файл і запустіть команду для перегляду текстового файлу.
$ ansible webservers –m command -a ‘cat temp.txt’
# 4) Модуль користувача
За допомогою цього модуля можна створювати або видаляти користувачів.
Щоб додати користувача
$ ansible webservers -m user -a 'name=user1 password=user1' --become
Видалити користувача
$ ansible webservers -m user -a 'name=user1 state=absent' --become
Варіанти:
- стати - Привілей суперкористувачу для запуску команди
- стан = відсутній щоб видалити користувача
# 5) Файловий модуль
Цей модуль використовується для створення файлів, каталогів, встановлення або зміни дозволів та прав власності на файли тощо
Приклад 1: Створіть файл
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
Приклад 2: Створіть каталог
оголошення рядкового масиву в Java
Щоб створити каталог за допомогою файлового модуля, потрібно встановити два параметри.
- Шлях (псевдонім - ім'я, призначення) - це абсолютний шлях до каталогу, який потрібно створити.
- Стан - значення слід ввести як «каталог». За замовчуванням значенням є «файл».
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=directory mode=755'
Приклад 3: Видаліть файл
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
Приклад 4: Видаліть каталог
Ви можете видалити каталог, встановивши значення параметра стану на відсутній . Каталог та весь його вміст буде видалено.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
# 6) Модуль копіювання
Він використовується для копіювання файлів на декілька цільових машин.
$ ansible webservers -m copy -a 'src=sample.txt dest=/home/ansible/sample.txt'
# 7) Управління програмними пакетами
Якщо вам потрібно встановити програмні пакети через «yum» або «apt», ви можете скористатися наведеними нижче командами.
Приклад 1: Встановіть GIT
$ ansible webservers –m yum -a “name=git state=present” --become
У правому вікні ви можете побачити, якщо git не встановлено, він видасть команду не знайдено, а після встановлення відобразить вихідні дані.
У цій команді стан = присутній перевірить, чи встановлений пакет чи ні, а якщо не встановлений, встановить останню версію.
Приклад 2: Перевірте, чи встановлений пакет, та оновіть його до останньої версії.
$ ansible webservers -m yum -a “name=git state=latest”
У наведеній вище команді стан = останній оновить пакет до останньої версії.
Приклад 3: Встановіть веб-сервер Apache
$ ansible webservers -m yum -a 'name=httpd state=present' –become
Приклад 4: Перевірте, чи встановлено Maven чи ні.
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) Модуль управління послугами
Для управління послугами з ansible ми використовуємо модуль ‘Послуга’.
Запуск служби
$ ansible webservers -m service -a “name=httpd state=started” --become
Зупинка послуги
$ ansible webservers -m service -a “name=httpd state=stopped” --become
Перезапуск служби
$ ansible webservers -m service -a “name=httpd state=restarted --become
Клацніть тут отримати повний список модулів.
Резюме
У цьому підручнику я познайомив вас з основними поняттями та компонентами Ansible, і ми також побачили більше про встановлення, налаштування та використання Ansible за допомогою модулів Ansible, що є основним компонентом у виконанні Ansible.
У нашому майбутньому навчальному посібнику ми зосередимося на дуже важливому аспекті написання посібників для автоматизації завдань та сховищ Ansible для збереження конфіденційних даних у зашифрованих файлах.
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- Поглиблені підручники Eclipse для початківців
- Відповідальні ролі, інтеграція з Дженкінсом у DevOps та модулі EC2
- Автоматизація завдань із використанням Ansible Playbooks та Ansible Vault з прикладами
- Покрокове встановлення та налаштування Appium Studio
- Вступ до мови програмування Java - Підручник з відео
- Повне налаштування та встановлення WebDriver за допомогою Eclipse - Підручник селену № 9
- Завантаження та встановлення Jira за допомогою програми встановлення ліцензії Jira
- Процес введення та встановлення Python