![10 найкращих додатків для безпеки жінок для Android](/f/0087cd3401a149295327dffc57bf7875.jpg?width=100&height=100)
В попередня стаття цієї серії Ansible, ми пояснили, що Ansible-це інструмент без агентів, який дозволяє швидко та ефективно керувати декілька машин (також відомих як вузли - і також виконують розгортання на них) з одного системи.
Після встановлення програмного забезпечення на машині контролера, створення файлу ключі для входу без пароля і копіюючи їх у вузли, настав час дізнатися, як оптимізувати процес управління такими віддаленими системами за допомогою Відповідальний.
У цій статті, а також у наступній ми будемо використовувати наступне тестове середовище. Усі господарі є CentOS 7 коробки:
Контролер (де встановлено Ansible): 192.168.0.19 Вузол1: 192.168.0.29 Вузол 2: 192.168.0.30
Крім того, зверніть увагу, що обидва вузли були додані до локального розділу веб -серверів /etc/ansible/hosts файл:
Тим не менше, давайте почнемо з актуальної теми.
Як описано в попередньому посібнику, ви можете скористатися анзибль утиліта для запуску команд у віддалених вузлах наступним чином:
# ansible -a "/bin/hostnamectl --static" веб -сервери.
У наведеному вище прикладі ми бігли hostnamectl --static
на node1 та node2. Не потрібно багато часу, щоб усвідомити, що цей метод виконання завдань на віддалених комп’ютерах відмінно працює для коротких команд, але може швидко стати обтяжливим або брудним для складніших завдань, які потребують подальших добре структурованих параметрів конфігурації або взаємодії з іншими послуги
Наприклад, налаштування та налаштування WordPress на кількох хостах - про що ми розповімо в наступній статті цієї серії). Ось де Ігрові книжки вийти на сцену.
Простіше кажучи, Ігрові книжки - це текстові файли у форматі звичайного тексту YAML формату та містити список з елементами з однією або кількома парами ключ/значення (також відомий як “хеш"Або"словник”).
Усередині кожної книжки розмов ви знайдете одну або кілька груп хостів (кожна з цих груп також називається a грати), де мають бути виконані бажані завдання.
Приклад з офіційних документів допоможе нам проілюструвати:
1.господарі: це список машин (згідно з /etc/ansible/hosts), де будуть виконуватися наступні завдання.
2.remote_user: віддалений обліковий запис, який буде використовуватися для виконання завдань.
3.vars: змінні, що використовуються для зміни поведінки віддаленої системи.
4. завдання виконуються по черзі, по черзі, проти всіх машин, які відповідають хостам. У рамках вистави всі ведучі отримають однакові директиви щодо завдань.
Якщо вам потрібно виконати інший набір пов’язаних завдань для певного хоста, створіть інший виступ у поточному Посібник для гри (іншими словами, мета п’єси-зіставити певний вибір ведучих із чітко визначеними завданнями).
У цьому випадку почніть нову гру, додавши внизу директиву hosts і розпочати заново:
- хости: веб -сервери remote_user: root vars: variable1: value1 variable2: value2 remote_user: root задачі: - name: опис для task1 task1: parameter1 = value_for_parameter1 parameter2 = value_for_parameter2 - name: опис task1 task2: parameter1 = value_for_parameter1 parameter2 = value_for_parameter2 обробники: - ім'я: опис служби -обробника 1: name = name_of_service state = service_status. - хости: dbservers remote_user: root vars: змінна1: значення1 змінна2: значення2. …
5. обробники - це дії, які запускаються в кінці розділу завдань у кожному відтворенні і в основному використовуються для перезапуску служб або запуску перезавантаження у віддалених системах.
# mkdir/etc/ansible/playbooks.
І файл з іменем apache.yml всередині з таким вмістом:
- хости: веб -сервери vars: http_port: 80 max_clients: 200 remote_user: root tasks: - name: переконатися, що apache має останню версію yum: pkg = httpd стан = останній - ім'я: замінити файл default index.html копію файлу: src =/static_files/index.html dest =/var/www/html/mode = 0644 notify: - перезапустити apache - ім'я: переконайтеся, що apache запущено (і ввімкніть його під час завантаження) служба: ім'я = httpd стан = запущено увімкнено = так обробники: - ім'я: перезапустити службу apache: ім'я = httpd стан = перезавантажено.
По -друге, створіть каталог /static_files:
# mkdir /static_files.
де ви зберігатимете звичай index.html файл:
Apache було запущено на цьому хості через Ansible
Представлено вам Tecmint.com
Тим не менш, тепер настав час використовувати цей посібник для виконання завдань, згаданих раніше. Ви звернете увагу, що Ansible буде проходити кожне завдання господаря по одному, і звітуватиме про стан таких завдань:
# ansible-playbook /etc/ansible/playbooks/apache.yml.
Тепер подивимося, що станеться, коли ми відкриємо браузер, і вкажемо на нього 192.168.0.29 та 192.168.0.30:
Давайте зробимо ще один крок і вручну зупинимо та вимкнемо Apache node1 та node2:
# systemctl зупинити httpd. # systemctl вимкнути httpd. # systemctl є активним httpd. # systemctl увімкнено httpd.
Потім знову біжи,
# ansible-playbook /etc/ansible/playbooks/apache.yml.
Цього разу завдання повідомляє, що веб -сервер Apache був запущений і включений на кожному хості:
Будь ласка, розгляньте наведений вище приклад як уявлення про силу Ansible. Незважаючи на те, що це відносно прості завдання, якщо їх виконувати на невеликій кількості серверів, це може стати дуже нудним і тривалим часом, якщо вам потрібно буде зробити те ж саме на кількох (можливо, сотнях) машинах.
У цій статті ми описали, як запускати команди та виконувати складні завдання на кількох віддалених хостах одночасно за допомогою Ansible. офіційна документація та Сховище GitHub надайте багато прикладів та посібників щодо того, як використовувати Ansible для досягнення практично будь -якого уявного завдання.
Коли ви починаєте вчитися, як автоматизувати завдання на віддалених хостах Linux використовуючи Ansible, ми хотіли б почути ваші думки. Питання, коментарі та пропозиції також завжди вітаються, тому не соромтеся звертатися до нас за допомогою наведеної нижче форми в будь -який час.