#ansible #openssl #ansible-inventory #openssl-engine
Вопрос:
Хотите знать, как написать ansible-playbook, чтобы перечислить все сертификаты Openssl на локальном хосте и срок их действия
Комментарии:
1. Первым шагом было бы выяснить, как перечисление сертификатов выполняется вручную (без ansible)
2. Вопрос очень расплывчатый и неопределенный. Однако вы можете воспользоваться преимуществами модуля Ansible x509_certificate_module .
Ответ №1:
Поскольку у меня будет аналогичный вариант использования и, возможно, еще несколько в будущем, я настроил короткий тест в среде RHEL 7.9.
Поскольку я стою за прокси-сервером, мне пришлось указать его в Bash для CLI, а также для модулей Ansible.
export HTTP_PROXY="http://localhost:3128"
export HTTPS_PROXY="http://localhost:3128"
Он x509_certificate_module
поступает из коллекций сообщества , поэтому перед его установкой необходимо выполнить установку.
ansible-galaxy collection install community.crypto # --ignore-certs
Process install dependency map
Starting collection install process
Installing 'community.crypto:1.9.3' to '/home/${USER}/.ansible/collections/ansible_collections/community/crypto'
А также добавьте путь к коллекции в библиотеку.
vi ansible.cfg
...
[defaults]
library = /usr/share/ansible/plugins/modules:~/.ansible/plugins/modules:~/.ansible/collections/ansible_collections/
...
На удаленном хосте необходимо установить модуль криптографии Python.
- name: Make sure dependencies are resolved
pip:
name: cryptography
extra_args: '--index-url https://"{{ ansible_user }}":"{{ API_KEY }}"@repository.example.com/artifactory/api/pypi/pypi-remote/simple --upgrade'
tags: check_certs
… Я использую внутреннюю службу частного репозитория даже для пакетов Python, поэтому мне не нужно указывать прокси для pip_module
, но index-url
здесь вместо in /etc/pip.conf
.
environment:
HTTP_PROXY: "localhost:3128"
HTTPS_PROXY: "localhost:3128"
Чем просто можно собрать и перечислить информацию о сертификате.
- name: Get certificate information
community.crypto.x509_certificate_info:
path: /etc/pki/ca-trust/source/anchors/DC_com_DC_example_CA_cert.pem
register: cert_info
tags: check_certs
- name: Show certificate information
debug:
msg: "{{ cert_info.not_after }}"
tags: check_certs
… Из-за некоторых проблем с совместимостью я обнаружил, что, по-видимому, лучше всего использовать набор символов переносного имени файла POSIX только для имен файлов сертификатов.
Дальнейшее чтение, части реализации и улучшения я оставлю вам.
Документация:
- Модуль Ansible pip_module
- Модуль Ansible x509_certificate_module