Требуемые условия завершения
Задача:
- Project 3 – Создание сертификатов
- Проект должен быть выполнен средствами Ansible
- Используйте папку project_3
- В качестве плейбука используйте файл playbook_3.yml в каталоге project_3
- Проект должен включать в себя все необходимые действия по созданию сертификатов
- Используйте центр сертификации настроенный в 1 день
- Для указания имени сайта используйте внешнюю переменную
Вариант реализации:
ANS:
- Из под пользователя user переходим в директорию /opt/ansible:
cd /opt/ansible
- Создаём первый playbook_3.yml в директории project_3:
vim project_3/playbook_3.yml
-
- Содержимое playbook_3.yml:
- данный playbook - выполняет следующее:
- определяются внешнюю переменную name_site - и пример как её определять во время запуска playbook-сценария;
- установку необходимого пакета для ОС Redos - для работы с openssl через python;
- генерирует закрытый ключ;
- генерирует запрос;
- подписывает запрос и выпускает сертификат;
- данный playbook - выполняет следующее:
- Содержимое playbook_3.yml:
---
- name: Project 3 – Creating certificates
hosts: Router
become: true
vars:
# Extra vars, examples: -e "name_site=web.company.prof"
name_site: ""
tasks:
- name: Install python3-cryptography
ansible.builtin.dnf:
name: python3-cryptography
state: present
- name: Generate an OpenSSL private key
community.crypto.openssl_privatekey:
path: "/opt/ca/{{ name_site }}.key"
- name: Generate an OpenSSL Certificate Signing Request
community.crypto.openssl_csr:
path: "/opt/ca/{{ name_site }}.csr"
privatekey_path: "/opt/ca/{{ name_site }}.key"
country_name: RU
organization_name: COMPANY.PROF
common_name: "{{ name_site }}"
- name: Generate an OpenSSL certificate signed with your own CA certificate
community.crypto.x509_certificate:
path: "/opt/ca/{{ name_site }}.crt"
csr_path: "/opt/ca/{{ name_site }}.csr"
ownca_path: /opt/ca/ca.crt
ownca_privatekey_path: /opt/ca/ca.key
provider: ownca
- Устанавливаем необходимую для работу ansible - коллекцию:
- из под пользователя user
ansible-galaxy collection install community.crypto
- Выполняем запуск playbook-сценария с указанием внешних переменных и их значений:
ansible-playbook project_3/playbook_3.yml -e "name_site=web.company.prof"
-
- Результат:
ansible-playbook project_3/playbook_3.yml -e "name_site=site.company.prof"
-
- Результат:
- Проверяем:
Последнее изменение: среда, 3 июля 2024, 16:09