Установка Puppet Bolt в Ubuntu…
Puppet Bolt — это инструмент с открытым исходным кодом, который широко используется для автоматизации ручной работы.
Bolt основан на Ruby и его инструменте командной строки, который позволяет выполнять сценарии и управлять локальным и удаленным сервером через SSH и WinRM. Это помогает сисадмину управлять несколькими серверами разными способами.
- Управление обновлениями
- Установка программы
- Чтение журналов
- Остановить или запустить службы
- Выполнение команды
Хорошей новостью является то, что вам не нужно устанавливать какой-либо агент на серверах. Это без агента.
Предварительное условие
Следующий пример относится к Ubuntu, поэтому вам нужна виртуальная машина Ubuntu с root-доступом с помощью sudo.
Обновление системы
Мы настоятельно рекомендуем вам обновить все доступные репозитории и пакеты перед установкой любого нового пакета в систему. Выполните следующую команду, и она сделает всю работу за вас.
обновление sudo apt-get
Установка Puppet Bolt
Поскольку он не имеет агента, вам не нужно устанавливать его на каждый сервер. Вместо этого только на одном сервере, который будет действовать как главный, который можно использовать для подключения к удаленным серверам. Bolt — это мультиплатформенный инструмент, который вы можете установить на свою любимую ОС.
- Окна
- macOS
- РЭЛ
- ЦентОС
- Федора
- Дебиан
- Убунту
Посетите официальный сайт для получения последней доступной версии. Давайте установим это на Ubuntu.
Запустите следующую команду, чтобы получить пакет.
sudo wget https://apt.puppet.com/puppet6-release-bionic.deb
Затем установите загруженный выше пакет с помощью команды менеджера пакетов Debian.
sudo dpkg -i puppet6-release-bionic.deb
Снова обновите систему, используя следующую команду.
обновление sudo apt-get
Наконец, выполните следующую команду, чтобы установить болт.
sudo apt-get установить puppet-bolt
Вы успешно установили Puppet Bolt на свой сервер.
Это необходимо сделать на всех серверах, которыми вы хотите управлять через Bolt.
Как упоминалось ранее, Bolt подключается к другому серверу через ключ SSH, поэтому я предполагаю, что у вас уже есть обмен ключами между серверами. Если нет, вы можете обратиться к этому руководству для настройки обмена ключами SSH.
Давайте подключимся к удаленным серверам и запустим команды Bolt.
Чтобы запустить команду на одном узле, используйте следующую команду.
команда болта запустить <КОМАНДА> —nodes <УЗЕЛ>
Замените КОМАНДУ на команду, которую вы хотите выполнить, а УЗЕЛ на имя хоста или IP-адрес удаленного сервера. Аналогичным образом вы также можете запустить команду на нескольких узлах.
команда болта запустить <КОМАНДА> -n <УЗЕЛ1, УЗЕЛ2, УЗЕЛ3, УЗЕЛ4>
Если вам нужно добавить аутентификацию по паролю в команду, вы можете добавить ее с помощью флагов.
команда болта запустить <КОМАНДА> -n <УЗЕЛ1, УЗЕЛ2> -u <ПОЛЬЗОВАТЕЛЬ> -p <ПАРОЛЬ>
Предположим, вы хотите узнать, как долго работает система, тогда вам нужно будет использовать команду uptime следующим образом:
Время работы команды болта —nodes 35.185.68.71,35.231.9.135
Вы должны увидеть следующий вывод.
sajid@Sajid-PC:~$ Время работы команды Bolt —nodes 35.185.68.71,35.231.9.135 Начато 35.185.68.71… Начато 35.231.9.135… Завершено 35.231.9.135: STDOUT: 04:57: 48 до 7 минут, 0 пользователей, средняя нагрузка: 0,00, 0,03, 0,02 Завершено 35.185.68.71: STDOUT: 04:57:48 до 9 минут, 0 пользователей, средняя нагрузка: 0,00, 0,00, 0,00 Успешно на 2 узлах: 35,185 .68.71,35.231.9.135 Выполнено на 2 узлах за 5,96 секунды.
Возможно, вы захотите запустить какую-нибудь команду, содержащую пробелы, поэтому вам придется заключить команду в одинарные кавычки:
sajid@Sajid-PC:~$bolt команда запустить 'echo $HOME' —nodes 35.185.68.71,35.231.9.135 Начато 35.185.68.71… Начато 35.231.9.135… Завершено 35.231.9.135: STDOUT: /home/sajid Завершено 35.185.68.71: STDOUT: /home/sajid Успешно на 2 узлах: 35.185.68.71,35.231.9.135 Выполнено на 2 узлах за 6,11 секунды.
Запуск сценариев
У каждого из нас есть набор сценариев, которые мы регулярно используем.
Bolt позволяет легко повторно использовать эти сценарии без каких-либо изменений и запускать их на еще большем количестве узлов одновременно. Все, что вам нужно сделать, это указать имя и путь к скрипту, который вы хотите запустить.
запуск сценария болта
Вы должны увидеть вывод, похожий на этот:
sajid@Sajid-PC:/$bolt script run /home/sajid/Desktop/samplescript.sh —nodes 35.185.68.71,35.231.9.135 Начато 35.185.68.71… Начато 35.231.9.135… Завершено 35.231 .9.135: STDOUT: Hello World Завершено 35.185.68.71: STDOUT: Hello World Успешно на 2 узлах: 35.185.68.71,35.231.9.135 Выполнено на 2 узлах за 15,18 секунды
Вы можете запускать сценарии на любом языке, если в удаленной системе установлен соответствующий интерпретатор.
Автоматизация с задачей
Задача — это набор действий, которые вы хотите выполнить на удаленных машинах.
Задачи можно писать на любом языке, который работает на удаленном узле. Задачи упрощают повторное использование и обмен сценариями, а также помогают добиться автоматизации. Вы можете загрузить некоторые существующие задачи из Puppet Forge и загрузить туда свои задачи в соответствии с вашими потребностями.
Например, если вы хотите проверить состояние пакета vim, вы можете использовать следующую команду.
действие пакета запуска задачи болта = имя статуса = vim —nodes 35.185.68.71,35.231.9.135
Вы увидите вывод, похожий на этот:
sajid@Sajid-PC:~$bolt Task run package action=status name=vim —nodes 35.185.68.71,35.231.9.135 Начато 35.185.68.71… Начато 35.231.9.135… Завершено 35.185.68.71: { «status»: «install ok установлено», «version»: «2:7.4.1689-3ubuntu1.3» } Завершено 35.231.9.135: { «status»: «install ok установлено», «version»: «2 :7.4.1689-3ubuntu1.3» } Успешно на 2 узлах: 35.185.68.71,35.231.9.135 Выполнено на 2 узлах за 19,15 секунд.
Если вы не обнаружили установленный пакет vim, вы можете установить его с помощью следующей команды.
задача запуска пакета действия болта = имя установки = vim —nodes 35.185.68.71,35.231.9.135
Вы можете запустить план, чтобы настроить nodejs и подключить его к балансировщику нагрузки. Вы можете сделать это, объединив Puppet Bolt с целевым узлом, на котором уже установлен Bolt.
план болтов запуска nodejs::myplan load_balancer=lb.myorg.com
Вы можете использовать Puppet Bolt для копирования файлов на удаленных узлах. Вы можете просто загрузить файл или каталог на удаленный узел, используя команду «bolt file upload». Все, что вам нужно сделать, это указать путь к файлу на локальном компьютере и место назначения на удаленном узле.
загрузка файла болта <ИСТОЧНИК> <НАЗНАЧЕНИЕ> —nodes <УЗЕЛ1>
Вы можете загрузить файл на несколько удаленных узлов одновременно следующим образом:
загрузка файла болта sample_file.txt /tmp/remotesample_file.txt —nodes 35.185.68.71,35.231.9.135
Как видите, возможностей много.
Создание файла инвентаризации
Bolt позволяет вам создать файл инвентаризации, в котором будет храниться информация о ваших узлах, задачах и конфигурации. Вы можете указать разные узлы в группе и файл инвентаризации, который по умолчанию хранится в файле Inventory.yaml внутри каталога проекта. Вот пример создания файла инвентаризации.
— # Примеры групп файлов инвентаризации: — имя: Группа узлов узлов: — node1 — node2 — node3 config: ssh: host-key-check: false ssl: false
Вы можете заменить эти node1, node2, node3 своим фактическим доменным именем узла или IP-адресом ваших узлов. Теперь вы можете добавить этот файл инвентаризации в команды болта для выполнения задач на указанных узлах.
команда болта запускает <КОМАНДА> —inventoryfile ./inventory.yaml
Заключение
Надеюсь, теперь у вас есть представление о том, что такое Bolt и как он может помочь вам в автоматизации. Возможно, вам также будет интересно узнать о Puppet.