Я использую Ansible 2.3. мои хосты - это rhel 7. У меня есть несколько сценариев, например создание, удаление, отключение пользователей и усиление защиты системы.
Я пытаюсь понять, как лучше всего проверить, были ли учетные записи созданы, отключены и т. Д. Есть ли какие-нибудь предложения? Есть ли у ansible какие-либо встроенные модули и т. Д. Я вижу, что вы можете добавить Log_Path в файл конфигурации .. или я могу просто использовать grep для файлов журнала на каждом хосте для пользователей, которые были добавлены, отключены или удалены?
Сами по себе учебники предназначены для «проверки» желаемого состояния. Каждый запуск задачи - это, по сути, утверждение, что система настроена одним небольшим способом, например, если данный пользователь существует. Переходите к следующему заданию. При ошибке Ansible прерывается на раннем этапе.
Тем не менее, часто при отладке playbooks и модулей вы хотите проверить, что что-то действительно произошло. поскольку модули различаются по степени проверки. Несколько способов сделать это. Запуск в режиме проверки, чтобы смоделировать пробный запуск того, что он мог бы изменить. Используйте систему ведения журнала задач Ansible, такую как ARA или Tower. Напишите свои собственные сценарии проверки на предпочитаемом вами языке. Включите соответствующее ведение журнала (системный журнал, аудит) на управляемых хостах и проверьте это. Сбросьте скрипты Ansible, которые он запускает на хостах, установив ANSIBLE_KEEP_REMOTE_FILES = 1.
Все это не обязательно для запуска протестированного сценария. Это инструменты, позволяющие получить уверенность в том, что сценарий приведет к определенному состоянию.
tasks
в Ansible
подтверждать себя немного в том смысле, что задача вроде:
- name: a simple task
file:
path: /foo
state: directory
проверит, есть ли каталог /foo
перед его созданием и возвратом OK
если каталог уже существует.
Предполагая, что вас спросят, как проверить, что Ansible сделал на has, я бы рекомендовал взглянуть на Фреймворк аудита ядра Linux. В audit
демон работает в фоновом режиме, и система журналов изменена на /var/log/audit.log
Платформа аудита работает путем прослушивания событий, о которых сообщает ядро, и записи их в файл журнала.
Здесь имеет смысл использовать инструмент, отличный от самого Ansible, поскольку сам Ansible не может сообщить об ошибках, неправильных конфигурациях и т. Д. В Ansible.
Для использования audit
вам необходимо установить ядро, скомпилированное с CONFIG_AUDIT
включен и запустить auditd
служба.
Вы можете использовать ansible-playbook для проверки дрейфа конфигурации экземпляра с помощью аргументов командной строки.
ansible-playbook --check --diff