16.4. 인증서 시스템 역할을 사용하여 인증서 발행 전 또는 이후에 실행할 명령 지정

인증서 역할을 사용하면 Ansible Core를 사용하여 인증서를 발급하거나 갱신하기 전과 후에 명령을 실행할 수 있습니다.

다음 예에서 관리자는 www.example.com 의 자체 서명 인증서 전에 httpd 서비스를 중지한 후 나중에 다시 시작합니다.

참고

기본적으로 certmonger 는 만료되기 전에 인증서를 자동으로 업데이트하려고 합니다. Ansible 플레이북의 auto_renew 매개변수를 no 로 설정하여 이 설정을 비활성화할 수 있습니다.

사전 요구 사항

  • Ansible Core 패키지는 제어 시스템에 설치됩니다.
  • 플레이북을 실행할 시스템에 rhel-system-roles 패키지가 설치되어 있습니다.

절차

  1. 선택 사항: 인벤토리 파일(예: inventory.file )을 생성합니다.

    $ *touch inventory.file*
  2. 인벤토리 파일을 열고 인증서를 요청할 호스트를 정의합니다. 예를 들면 다음과 같습니다.

    [webserver]
    server.idm.example.com
  3. 플레이북 파일을 만듭니다(예: request-certificate.yml ):

    • 서버와 같이 인증서를 요청할 호스트를 포함하도록 호스트를 설정합니다.
    • 다음을 포함하도록 certificate_requests 변수를 설정합니다.

      • name 매개변수를 mycert 와 같은 인증서의 원하는 이름으로 설정합니다.
      • dns 매개변수를 인증서에 포함할 도메인(예: www.example.com)으로 설정합니다.
      • self-sign 과 같은 인증서를 발급하는 데 사용할 ca 매개변수를 CA로 설정합니다.
      • 이 인증서를 발행하거나 갱신하기 전에 실행할 명령에 run_before 매개 변수를 systemctl stop httpd.service 와 같이 설정합니다.
      • 이 인증서가 발행되거나 갱신된 후 실행할 명령에 run_after 매개 변수를 다음과 같이 설정합니다(예: systemctl start httpd.service ).
    • 역할에 rhel-system- roles.certificate 역할을 설정합니다.

      이 예제는 플레이북 파일입니다.

      ---
      - hosts: webserver
        vars:
          certificate_requests:
            - name: mycert
              dns: www.example.com
              ca: self-sign
              run_before: systemctl stop httpd.service
              run_after: systemctl start httpd.service
      
        roles:
          - rhel-system-roles.certificate
  4. 파일을 저장합니다.
  5. 플레이북을 실행합니다.

    $ *ansible-playbook -i inventory.file request-certificate.yml*

추가 리소스

  • /usr/share/ansible/roles/rhel-system-roles.certificate/README.md 파일을 참조하십시오.
  • ansible-playbook(1) 도움말 페이지를 참조하십시오.