Як відображати команди на серверах

У середовищі Azure є три сервера CentOS, для яких потрібна група програмного забезпечення та конфігурація (наприклад, додавання користувачів, додавання дозволів тощо). Чи існує спосіб, яким я можу зробити це на одному сервері, і він повторюється через два інших, так що я повинен зробити це тільки один раз?

0

5 Відповіді

Саме для цього потрібно розробити інструменти керування конфігурацією, тому рекомендую ознайомитися з одним або кількома з них:

  • Chef
  • Маріонетка
  • Ansible
  • Сіль

Ці інструменти дозволять вам визначити конфігурацію машини у файлі або файлах, а потім застосувати її до декількох машин і переконатися, що вони перебувають у визначеному стані. Більшість з них мають безкоштовну версію з відкритим кодом, з якої ви можете почати.

5
додано

Пропоную вам перевірити AzureRmVMRunCommand, дозволяє виконувати сценарій PowerShell/Shell на будь-якому сервері Azure. За допомогою невеликого циклу ви можете виконати будь-які зміни, які вам потрібні, на будь-яких серверах.

PowerShell

Invoke-AzureRmVMRunCommand -ResourceGroupName 'rgname' -Name 'vmname' -CommandId 'RunPowerShellScript' -ScriptPath 'sample.ps1' -Parameter @{"arg1" = "var1";"arg2" = "var2"}

Bash

az vm run-command invoke -g MyResourceGroup -n MyVm --command-id RunShellScript --scripts 'echo $0 $1' --parameters hello world

Примітка: Також можна виконати сценарій PowerShell/Shell у обох вищезазначених командах. Вони є перехресними платформами.

Див. az vm run-command .

2
додано

Я б запропонував прочитати та дізнатися про паралельні інструменти ssh, кластера та конфігурації. Ідея полягає в тому, що ви запускаєте команду один раз з центрального сервера, і вона натискає на решту серверів у вашій групі або кластері. Для того, щоб це працювало, вам потрібен певний спосіб для центрального сервера, щоб розмовляти з іншими серверами (один простий спосіб - через ssh і за допомогою клавіш). Для керування конфігурацією є такі варіанти, як шеф-кухар, маріонетка, Ansible і т.д.

2
додано

Для невеликих ізольованих середовищ керування конфігураціями може бути перевантаженим. Що ще важливіше, реалізація CM в мініатюрних автономних стеках може легко створити більше роботи і більше проблем, ніж просто не використовувати її взагалі, особливо якщо персонал адміністратора на руках не має жодного мінімального досвіду роботи з CM.

Для управління платформами однорідних стеків близько трьох вузлів або менше, які ще не використовують CM і що не очікується зробити багато змін протягом свого життя за межами кількох ковдрових завдань, управління через tmux є швидким і ефективним.

Існує вже велика документація і керівництва по використанню tmux , але заради напрямку це термінальний мультиплексор. tmux дозволить вам не тільки відкрити декілька одночасних інтерактивних сеансів за допомогою SSH або подібних до віддалених або локальних екземплярів, але також дозволить вам відправляти команди і переглядати вивід оболонки для всіх активних сеансів одночасно в режимі реального часу.

Пам'ятайте, що в той час як tmux виконує прекрасні операції як менеджер вікон терміналів і командний мультиплексор, він не добре масштабується у великих середовищах, які вимагають багато сеансів. Вам буде важко намагатися керувати п'ятнадцятьма серверами навіть у декількох вікнах (вікно подібне вкладці у браузері), і не дай бог половині не виконати потрібну команду, вимагаючи переміщення фокусу до них по одній і вирішення проблеми, щоб повернути все синхронізовано. Бурхливий над це точно що повернуло мені на SaltStack та CM взагалі.

Простий посібник до tmux

1
додано

Чи можна зробити сценарій оболонки всіх цих налаштувань? Якщо так, то зробіть один скрипт і розкажіть його на весь сервер за допомогою Linux customScriptExtensions

https://docs.microsoft.com/uk- us/azure/virtual-machines/linux/extensions-customscript

Я роблю те ж саме для різних середовищ у вікнах, але вище повинні працювати для Linux теж. Я прив'язую його до мого шаблону ARM, який розгортає віртуальні машини. Так що якщо я пізніше доведеться зробити деякі зміни налаштувань, я можу контролювати всі через ARM шаблони себе.

0
додано