Команды ansible для windows

Содержание
  1. 📜 9 Ansible плейбуков примеров для администрирования Windows
  2. Копирование файлов
  3. Установить / удалить MSI
  4. Удалить программное обеспечение (.EXE)
  5. Остановить / запустить / перезапустить службу Windows
  6. Сбор фактов
  7. Запуск команд
  8. Переменные среды
  9. Изменить реестр
  10. Удаление логов
  11. Добавить комментарий Отменить ответ
  12. • Свежие записи
  13. • Категории
  14. • itsecforu.ru
  15. • Страны посетителей
  16. IT is good
  17. Как работать с ANSIBLE
  18. Краткий словарь терминов Ansible
  19. Проверка подключения к нодам
  20. Подключение с помощью другого пользователя
  21. Настройка пользовательского ключа SSH
  22. Настойка парольной аутентификации
  23. Использование пароля sudo
  24. Пользовательский файл инвентаря
  25. Динамический файл инвентаря
  26. Запуск специальных команд
  27. Запуск плейбуков
  28. Запрос информации о play
  29. Управление выполнением плейбука
  30. Ansible Vault для хранения конфиденциальных данных
  31. Создание нового зашифрованного файла
  32. Шифрование существующего файла Ansible
  33. Просмотр содержимого зашифрованного файла
  34. Редактирование зашифрованного файла
  35. Расшифровка файлов
  36. Использование нескольких паролей
  37. Использование файла паролей
  38. Запуск плейбука с зашифрованными данными
  39. Устранение неполадок
  40. Заключение
  41. Ansible Galaxy

📜 9 Ansible плейбуков примеров для администрирования Windows

Я предполагаю, что вы уже установили Ansible на Windows и вы хотите управлять серверами Windows.

Ниже приведены некоторые из наиболее часто используемых задач, выполняемых администраторами Windows ежедневно. Вы будете удивлены, увидев, как легко администрируется Windows с помощью Ansible.

IP-адрес моего компьютера с контроллером Ansible Windows – 192.168.0.106, а IP-адрес моей удаленной системы Windows – 192.168.0.102

Мое соединение с удаленным хостом прошло успешно.

Копирование файлов

win_copy – это модуль, который копирует файл с локального сервера на удаленный хост Windows.

Я буду использовать этот модуль для копирования одного PDF.

Используйте приведенный ниже код YAML, укажите исходный и целевой путь.

Установить / удалить MSI

state present означает, что MSI будет установлен на машине, и приложение будет находится в текущем состоянии.

Здесь я устанавливаю Apache.

Теперь перейдите в систему Windows и проверьте, успешно ли установлено приложение apache.

Ниже приведен тот же пример, что и выше, но вместо state мы используем аргумент install для установки apache.

Чтобы удалить приложение с помощью файла MSI, вам нужно использовать модуль win_package.

Отсутствие state absent, что приложение будет удалено с использованием файла MSI.

Здесь я удаляю Apache.

Запустите ansible плейбук для удаления MSI

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

Удалить программное обеспечение (.EXE)

Вы также можете удалить программное обеспечение с помощью файла .exe, используя идентификатор продукта этого программного обеспечения (product id).

Остановить / запустить / перезапустить службу Windows

Модуль win_service используется для запуска, остановки или перезапуска службы. Здесь я покажу вам, как остановить службу tomcat.

Запустите ansible плейбук, чтобы остановить службу Tomcat.

Сбор фактов

С помощью модуля ansible win_disk_facts вы можете получить всю информацию о диске целевого хоста.

Используя ANSI-модуль win_command, вы можете выполнять команды на удаленном хосте, получать информацию о процессоре, сведения об устройстве и многое другое.

Запуск команд

Какие бы команды вы ни выполняли в Windows, они могут выполняться через модуль ansible win_command.

Вам просто нужно указать команду в вашем файле YAML.

На примере я просто создаю каталог.

Переменные среды

Система Windows имеет несколько переменных среды, например, JAVA_HOME.

Используя ANSI-модуль win_environment, вы можете добавлять или изменять переменные среды в системе Windows.

В этом примере я добавляю новую переменную в список переменных среды Windows.

Изменить реестр

Ansible модуль win_regedit используется для добавления или редактирования данных реестра на удаленной машине с Windows.

Вам необходимо указать путь к реестру и контент для добавления / обновления.

Здесь я создаю новую запись реестра Itisgood по пути HKLM:\SOFTWARE, а затем добавляю имя и данные в этот реестр.

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

Удаление логов

Модуль win_eventlog используется для добавления, очистки или удаления логов системы Windows.

Перейдите в Windows Powershell и перечислите EventLogs, присутствующие на удаленном компьютере с Windows.

Теперь, если вы снова перечислите логи, вы увидите, что логи Internet Explorer были удалены.

Добавить комментарий Отменить ответ

• Свежие записи

• Категории

• itsecforu.ru

• Страны посетителей

IT is good

Как работать с ANSIBLE

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

Читайте также:  Бесконечный поиск обновлений для windows 10

Этот мануал написан в виде шпаргалки. По сути это краткий справочник по командам и методам, обычно используемым при работе с Ansible. Краткий обзор Ansible и инструкции по установке и настройке вы найдете в руководстве Установка и настройка Ansible в Ubuntu 18.04.

Краткий словарь терминов Ansible

В этом руководстве широко используются такие термины Ansible:

  • Control Machine (или Node): ведущая система, в которой установлен Ansible и откуда он может подключаться к нодам и выполнять на них команды.
  • Нода (Node): сервер, управляемый Ansible.
  • Файл инвентаря (Inventory): файл, который содержит информацию о серверах, которыми управляет Ansible, обычно находится в /etc/ansible/hosts.
  • Плейбук (Playbook): файл, содержащий серию задач, которые нужно выполнить на удаленном сервере.
  • Роли (Roles): коллекция плейбуков и других файлов, которые имеют отношение к цели (например, к установке веб-сервера).
  • Play: полный набор инструкций Ansible. В play может быть несколько плейбуков и ролей, включенных в один плейбук, который служит точкой входа.

Проверка подключения к нодам

Чтобы убедиться, что Ansible может подключаться к нодам и запускать команды и плейбуки, вы можете использовать следующую команду:

Модуль ping проверит, есть ли у вас валидные учетные данные для подключения к нодам, определенным в файле инвентаря, и может ли Ansible запускать сценарии Python на удаленном сервере. Ответ pong означает, что Ansible готов запускать команды и плейбуки на этой ноде.

Подключение с помощью другого пользователя

По умолчанию Ansible пытается подключиться к нодам в качестве текущего пользователя системы через соответствующую пару ключей SSH. Чтобы подключиться как другой пользователь, добавьте команду с флагом -u и именем нового пользователя:

То же самое относится и к ansible-playbook:

Настройка пользовательского ключа SSH

Если вы используете свой ключ SSH для подключения к удаленным серверам, вы можете предоставить его с помощью параметра —private-key:

Эта опция также работает для ansible-playbook:

Настойка парольной аутентификации

Если вам нужно использовать парольную аутентификацию для подключения к нодам, добавьте опцию — ask-pass к команде Ansible.

Это заставит Ansible запросить у вас пароль пользователя на удаленном сервере, к которому вы пытаетесь подключиться:

Эта опция также действительна для ansible-playbook:

Использование пароля sudo

Если удаленный пользователь должен предоставить пароль для запуска команд sudo, вы можете включить опцию —ask-become-pass в команду Ansible. Опция позволит вам ввести пароль sudo удаленного пользователя:

Эта опция также действительна для ansible-playbook:

Пользовательский файл инвентаря

Файл инвентаря по умолчанию обычно находится в /etc/ansible/hosts, но вы можете использовать опцию -i для указания пользовательских файлов при запуске команд и плейбуков Ansible. Это удобный способ настройки индивидуального инвентаря для каждого проекта, который можно включить в системы контроля версий, такие как Git:

Такая опция действительна и для ansible-playbook:

Динамический файл инвентаря

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

Вы можете найти ряд скриптов с открытым исходным кодом в официальном репозитории Ansible GitHub. После загрузки требуемого сценария на Ansible control machine и настройки необходимых параметров (например, учетных данных API) вы можете запустить исполняемый файл в качестве пользовательского инвентаря с любой командой Ansible, которая поддерживает эту опцию.

Следующая команда использует скрипт инвентаря my_inventory.py с командой ping для проверки подключения ко всем текущим активным серверам:

За более подробной информацией о том, как использовать динамические файлы инвентаризации, пожалуйста, обратитесь к официальной документации Ansible.

Запуск специальных команд

Чтобы выполнить любую команду на ноде, используйте параметр -a, а затем укажите нужную команду в кавычках.

Например, следующая команда выполнит uname -a на всех нодах в вашем инвентаре:

Также с помощью опции -m можно запускать модули Ansible. Следующая команда установит пакет vim на server1 из вашего инвентаря:

Прежде чем вносить изменения на свои ноды, вы можете выполнить пробный прогон, чтобы увидеть, как ваша команда повлияет на серверы. Это можно сделать, включив параметр — check:

Запуск плейбуков

Чтобы запустить плейбук и выполнить все определенные в нем задачи, используйте команду ansible-playbook:

Читайте также:  Utorrent грузится с вместе с ос windows 10

Чтобы перезаписать в плейбуке опцию hosts по умолчанию и ограничить выполнение определенной группой или хостом, включите в команду опцию -l :

Запрос информации о play

Опция —list-tasks используется для перечисления всех задач, которые будут выполнены в play, при этом не внося никаких изменений на удаленные серверы:

Точно так же можно запросить все хосты, которые будут затронуты выполнением play, без запуска каких-либо задач на удаленных серверах:

Вы можете использовать теги, чтобы ограничить выполнение play. Чтобы вывести список всех тегов, доступных в play, используйте параметр — list-tags :

Управление выполнением плейбука

Вы можете использовать опцию —start-at-task, чтобы определить новую точку входа вашего плейбука. Затем Ansible пропустит все, что предшествует указанной задаче, выполнив оставшуюся часть play с заданного момента. Эта опция в качестве аргумента требует правильное имя задачи:

Чтобы выполнять только задачи, связанные с конкретными тегами, вы можете использовать опцию —tags. Например, если вы хотите выполнить только задачи, помеченные как nginx или mysql, вы можете использовать:

Если вы хотите пропустить все задачи, которые находятся под определенными тегами, используйте —skip-tags. Следующая команда будет выполнять myplaybook.yml, пропуская все задачи, помеченные как mysql :

Ansible Vault для хранения конфиденциальных данных

Если ваши плейбуки Ansible содержат конфиденциальные данные, такие как пароли, ключи API и учетные данные, важно обеспечить их безопасность с помощью шифрования. Ansible предоставляет ansible-vault для шифрования файлов и переменных.

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

Создание нового зашифрованного файла

Вы можете создать новый зашифрованный файл Ansible с помощью:

Эта команда выполнит следующие действия:

  1. Сначала вам будет предложено ввести новый пароль. Вам нужно будет указывать этот пароль при каждом доступе к содержимому файла, будь то редактирование, просмотр или просто запуск плейбука (или команд с использованием его значений).
  2. Затем откроется редактор командной строки по умолчанию, чтобы вы могли заполнить файл требуемым содержимым.
  3. Наконец, когда вы закончите редактирование, ansible-vault сохранит файл как зашифрованный.

Шифрование существующего файла Ansible

Чтобы зашифровать существующий файл Ansible, вы можете использовать следующую команду:

Эта команда запросит у вас пароль, который вам нужно будет вводить при каждом доступе к файлу credentials.yml.

Просмотр содержимого зашифрованного файла

Если вы хотите просмотреть содержимое файла, который ранее был зашифрован с помощью ansible-vault, и вам не нужно изменять его содержимое, вы можете использовать команду:

Она предложит вам указать пароль, который вы выбрали при первом шифровании файла с помощью ansible-vault.

Редактирование зашифрованного файла

Чтобы изменить содержимое файла, который ранее был зашифрован с помощью Ansible Vault, выполните:

Эта команда предложит вам указать пароль, который вы выбрали при первом шифровании файла credentials.yml. После проверки пароля откроется редактор командной строки по умолчанию с незашифрованным содержимым файла, что позволит вам внести нужные изменения. По завершении вы можете сохранить и закрыть файл, как обычно, и обновленное содержимое будет сохранено и зашифровано.

Расшифровка файлов

Если вы хотите навсегда расшифровать файл, ранее зашифрованный с помощью ansible-vault, вы можете сделать это с помощью следующего синтаксиса:

Эта команда предложит вам ввести тот пароль, который использовался при первом шифровании файла. После проверки пароля содержимое файла будет сохранено на диск в виде незашифрованных данных.

Использование нескольких паролей

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

Чтобы создать новый зашифрованный файл с пользовательским идентификатором хранилища, включите параметр —vault-id вместе с меткой и расположением, где ansible-vault может найти пароль для этого хранилища. Метка может быть любой, а расположение может быть либо prompt (что означает, что команда должна предложить вам ввести пароль), либо путь к файлу паролей.

Это создаст новый идентификатор по имени dev, который использует prompt для получения пароля. Комбинируя этот метод с файлами переменных группы, вы сможете создать отдельные хранилища для каждой среды приложения:

Читайте также:  Кубейсик для windows 10

Мы использовали dev и prod в качестве идентификаторов хранилищ, чтобы продемонстрировать, как вы можете создавать отдельные хранилища для каждой среды. Самостоятельно вы можете создать столько хранилищ, сколько захотите, и использовать любой ID.

Теперь, чтобы просмотреть, отредактировать или расшифровать эти файлы, вам необходимо предоставить тот же ID хранилища и источник пароля вместе с командой ansible-vault:

Использование файла паролей

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

Файл паролей может быть простым текстовым файлом или исполняемым скриптом. Если файл является исполняемым, выходные данные, созданные ним, будут использоваться в качестве пароля хранилища. В противном случае в качестве пароля хранилища будет использоваться необработанное содержимое файла.

Чтобы применить файл паролей в ansible-vault, необходимо указать путь к файлу паролей при выполнении любой из команд vault:

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

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

Запуск плейбука с зашифрованными данными

Каждый раз, когда вы запускаете плейбук, в котором используются данные, ранее зашифрованные с помощью ansible-vault, вам нужно будет указывать пароль хранилища в команде playbook.

Если вы использовали параметры по умолчанию и prompt при шифровании данных плейбука, вы можете использовать опцию —ask-vault-pass, чтобы Ansible запрашивал пароль:

Если вы использовали файл пароля вместо prompt, вы должны использовать опцию —vault-password-file :

Если вы используете данные, зашифрованные с помощью ID, вам нужно указать тот же ID хранилища и источник пароля, который вы использовали при первом шифровании данных:

Если вы используете файл пароля с ID, вы должны указать метку, а затем полный путь к файлу пароля в качестве источника:

Если ваш play использует несколько хранилищ, вы должны добавить параметр —vault-id для каждого из них в произвольном порядке:

Устранение неполадок

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

Если вам нужно больше деталей, вы можете использовать -vvv, и это увеличит детализацию вывода. Если вы не можете подключиться к удаленным нодам через Ansible, используйте -vvvv для получения информации об отладке соединения:

Заключение

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

Существует еще много вариантов команд и флагов, которые могут пригодиться вам в работе с Ansible. Чтобы получить обзор всех доступных опций, вы можете использовать команду help:

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

Ansible Galaxy

На последок хочу рассказать о Ansible Galaxy. Это репозиторий готовых плейбуков и ролей. Найти файлы, соответствующую задаче, а также документацию можно на портале galaxy.ansible.com. Установка выполняется командой ansible-galaxy, например:

данная команда создаст в каталоге пользователя папку .ansible/roles/geerlingguy.apache — в нее поместит файлы с описанием роли.

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

Оцените статью