Задача:

  • 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;
        • генерирует закрытый ключ;
        • генерирует запрос;
        • подписывает запрос и выпускает сертификат;
---
- 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