Вы хотите узнать, как использовать Ansible Lint?
Ansible – это инструмент автоматизации ИТ.
Ansible Lint – это инструмент командной строки, который анализирует код плейбука на предмет потенциальных ошибок.
Сегодня мы расскажем о том, как помогает процесс линтинга.
Что такое ansible-lint?
Прежде чем перейти к ansible-lint, давайте посмотрим на Ansible.
Ansible – это инструмент автоматизации ИТ с открытым исходным кодом.
Цель этого инструмента – конфигурирование систем, развертывание программного обеспечения и многое другое.
Обычно Ansible подключается к другим узлам через SSH и проталкивает в них модули Ansible. Ansible хранит свои конфигурации в файлах .yml.
Важным файлом YAML является плейбук Ansible.
Он определяет, как Ansible должен работать на узлах. Поэтому ошибки в YAML-файлах могут повлиять на работу Ansible.
Именно здесь мы используем инструмент командной строки, ansible-lint. Мы используем эту команду для линтинга плейбуков или файлов .yml в Ansible.
Процесс линтинга запускает программу, которая анализирует код и находит потенциальные ошибки в коде Ansible.
То есть она обнаруживает поведение и методы, которые нуждаются в улучшении.
Он может обнаружить синтаксические ошибки, неопределенные переменные и т.д.
Установка инструмента линтинга Ansible
Ansible-lint – это инструмент командной строки.
Он не входит в пакет Ansible, поэтому нам необходимо установить его. Мы можем установить его различными способами.
Чтобы установить его с помощью встроенного менеджера пакетов в Ubuntu, выполните команду,
apt install ansible-lint
Поскольку ansible-lint – это пакет Python, мы можем установить его с помощью команды,
pip install ansible-lint
Теперь давайте посмотрим, как его использовать!
Как использовать ansible-lint?
Чтобы получить полную информацию об использовании команды linting, мы используем,
ansible-lint --help
И вывод выглядит следующим образом:
Существует множество правил по умолчанию, используемых при линте плейбука.
Чтобы перечислить их, мы используем команду:
ansible-lint -L
Всего существует 18 правил по умолчанию.
Некоторые из них:
ANSIBLE0002: Trailing whitespace
There should not be any trailing whitespace
ANSIBLE0004: Git checkouts must contain explicit version
All version control checkouts must point to an explicit commit or tag, not just "latest"
ANSIBLE0005: Mercurial checkouts must contain explicit revision
All version control checkouts must point to an explicit commit or tag, not just "latest"
ANSIBLE0006: Using command rather than module
Executing a command when there is an Ansible module is generally a bad idea
ANSIBLE0007: Using command rather than an argument to e.g. file
Executing a command when there is are arguments to modules is generally a bad idea
ANSIBLE0008: Deprecated sudo
Instead of sudo/sudo_user, use become/become_user.
. . .
Например, если в плейбуке есть пробелы в конце, вывод линта будет выглядеть так:
ANSIBLE0002: Trailing whitespace
Выводится список нарушенных правил вместе с точным номером строки, где это произошло.
Аналогично, синтаксические ошибки в playbook выглядят следующим образом,
Syntax Error while loading YAML.
did not find expected '-' indicator
The error appears to be in '/etc/ansible/playbook.yml': line 14, column 6, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
name: Disable SELinux
^ here
Здесь отображается ошибочная строка вместе с точной ошибкой.
Самое главное, пользователь должен запустить команду linting в том же месте, где находится файл .yml.
Для сканирования всех файлов .yml в данном месте мы можем использовать команду,
ansible-lint *.yml
Как его настроить?
Далее рассмотрим возможность пользовательской настройки инструмента линтинга.
Мы можем настроить ansible-lint в соответствии с нашими требованиями.
Помимо правил по умолчанию, мы можем указать дополнительные правила в файле.
А флаг командной строки -c <путь к файлу> приведет к линтингу плейбука на основе пользовательской конфигурации.
Заключение
Итак, мы рассмотрели, как использовать инструмент командной строки ansible-lint
см. также:
- 🔐 Создание самоподписанных сертификатов OpenSSL с помощью Ansible
- 📜 Управление пользователями и группами в Linux с помощью Ansible
- 🐧 Как временно остановить демон Auditd с Ansible
- 🐧 Настройка кластера Elasticsearch на CentOS 8/7 | Ubuntu 20.04 / 18.04 с Ansible
- 📜 Как создать зашифрованный пароль пользователя Linux для Ansible
- 🔐 Как использовать Ansible Vault в плейбуках для защиты конфиденциальных данных
- 💽 Шпаргалка Ansible Vault / Справочное руководство
- Определите ключ ssh для каждого хоста, используя ansible_ssh_private_key_file
- 🦊 Безопасность CI/CD – Как защитить свой пайплайн CI/CD