Рубрики
Uncategorized

Сбор системной информации с помощью кукольного болта

В качестве системного администратора собирает информацию о том, какую версию программного обеспечения установлено или WHA … Теги с DevOps, Beavet, Puppetbolt, ConfigurationManagement.

В качестве системного администратора собирает информацию о том, какую версию программного обеспечения установлена или какая настройка в определенном файле на десятки или сотнях систем является довольно распространенной задачей. Сама задача довольно распространена, но способ, которым это достигнуто, может быть широко отличается даже от скрипта к скрипту в вашей среде.

Кукольный болт обеспечивает отличные леса или рамки, позволяющие сосредоточиться на получении ценной информации из систем, а не логистики того, как найти и подключаться к ним.

В этом посте блога мы будем создавать задачу кукольного болта, чтобы проверить, установлен ли Docker и работает на нескольких машинах.

Инициализировать новый болт проекта

Убедитесь, что последняя версия кукольного болта установлена перед началом работы.

Кукольный болт использует Проект Справочники в качестве пунктов запуска для беговых болтов. В этом посте мы создадим болт проекта под названием SystemInfo Это будет содержать наши задачи для сбор информации о системе. Следующая команда создаст каталог с именем SystemInfo в текущем рабочем каталоге.

bolt project init systeminfo

Теперь должен быть Болт.иамл Файл в системная информация каталог. В SystemInfo Каталог проекта Создать файл с именем Bolt-Project.yaml со следующим контентом.

# bolt-project.yaml
name: systeminfo

Создайте задачу SystemInfo

С воздействием проекта болта мы теперь готовы создавать наши задачи болтов для получения информации из наших систем.

Создать каталог задач

Создать Задачи каталог в каталоге проекта.

mkdir tasks

Изменить каталог на вновь созданные каталога задач.

cd tasks

Теперь мы готовы создать наш скрипт, который проверяет систему для Docker и посмотреть, работает ли она. Создать файл с именем CheckDocker.SH В текущем каталоге и добавьте следующий контент.

#!/bin/bash
output=$(docker ps 2>&1)
retVal=$?
if [$retVal -ne 0]; then
    echo "Docker is not present or running"
else
    echo "Docker is present and running"
fi

Теперь, когда у нас есть сценарий Shell для проверки установки Docker, нам просто нужно создать файл метаданных для нашей задачи, который предоставляет информацию о задаче. Имя файла задач должно быть отражено сценарию оболочки, так что он будет иметь имя checkdocker.json. .

{
  "description": "Check if docker is install and running",
  "input_method": "stdin",
  "parameters": {}
}

Теперь мы можем подтвердить, что болт распознает нашу новую задачу, запустив следующую команду, которая перечислены зарегистрированные задачи болтов.

bolt task show

Если задача регистрирует правильно, выход должен включать SystemInfo:: Checkdocker Вход.

facts Gather system facts
package Manage and inspect the state of packages
pkcs7::secret_createkeys Create a key pair
pkcs7::secret_decrypt Encrypt sensitive data with pkcs7
pkcs7::secret_encrypt Encrypt sensitive data with pkcs7
puppet_agent::install Install the Puppet agent package
puppet_agent::version Get the version of the Puppet agent package installed. Returns nothing if none present.
puppet_conf Inspect puppet agent configuration settings
reboot Reboots a machine
reboot::last_boot_time Gets the last boot time of a Linux or Windows system
service Manage and inspect the state of services
**systeminfo::checkdocker Check if docker is install and running**
terraform::apply Apply an HCL manifest
terraform::destroy Destroy resources managed with Terraform
terraform::initialize Initialize a Terraform project directory
terraform::output JSON representation of Terraform outputs

Запустите SystemInfo:: CheckDocker Task

С зарегистрированным заданием мы готовы запускать задачу, запустив следующую команду. В этом примере мы будем запустить задачу против нескольких узлов в нашей среде.

bolt task run systeminfo::checkdocker --no-host-key-check --user root --targets 10.0.0.25,10.0.0.252,10.0.0.224,10.0.0.80

Если задача успешно запустилась, она должна была сгенерировать выходные данные, аналогичные показанному ниже.

bolt task run systeminfo::checkdocker --user root --targets 10.0.0.25,10.0.0.252,10.0.0.224,10.0.0.80
Started on 10.0.0.224...
Started on 10.0.0.252...
Started on 10.0.0.25...
Started on 10.0.0.80...
Finished on 10.0.0.25:
  Docker is present and running
Finished on 10.0.0.252:
  Docker is not present or running
Finished on 10.0.0.80:
  Docker is not present or running
Finished on 10.0.0.224:
  Docker is not present or running
Successful on 4 targets: 10.0.0.25,10.0.0.252,10.0.0.224,10.0.0.80
Ran on 4 targets in 4.62 sec

Выход из задачи может быть сделан гораздо великолепным, но даже через несколько минут мы смогли создать задачу болтов, что запрашивает наши системы и давайте знать, если докер работает в этой системе. Это довольно простой пример того, что можно сделать с помощью кукольного болта, но возможности бесконечны для сбора ценной системной информации.

Оригинал: «https://dev.to/puppet/collecting-system-information-using-puppet-bolt-36ap»