12.4. 프로젝트에 서명


프로젝트에 서명하려면 Ansible 프로젝트 디렉터리가 필요합니다. 프로젝트 디렉터리 구조에 대한 자세한 내용은 Ansible 문서의 샘플 Ansible 설정을 참조하십시오.

다음 샘플 프로젝트에는 인벤토리 파일과 플레이북 디렉터리에 있는 두 개의 작은 플레이북이라는 매우 간단한 구조가 있습니다.

$ cd sample-project/
$ tree -a .
.
├── inventory
└── playbooks
    └── get_uptime.yml
    └── hello.yml

    1 directory, 3 files
참고

사용된 명령은 작업 디렉터리가 프로젝트의 루트라고 가정합니다. Ansible-sign 프로젝트 명령은 프로젝트 루트 디렉터리를 마지막 인수로 사용합니다.

현재 작업 디렉터리를 표시하려면 . 를 사용합니다.

Ansible-sign 은 프로젝트의 모든 보안 파일의 체크섬(SHA256)을 사용하고 체크섬 매니페스트 파일로 컴파일한 다음 해당 매니페스트 파일에 서명하여 콘텐츠를 변조하지 않도록 보호합니다.

콘텐츠에 서명하려면 프로젝트 루트 디렉터리에 보호할 파일을 ansible-sign 에 알리는 MANIFEST.in 파일을 생성합니다.

내부적으로 ansible-sign 은 Python의 distlib 라이브러리의 distlib.manifest 모듈을 사용하므로 MANIFEST.in 은 이 라이브러리에서 지정하는 구문을 따라야 합니다. MANIFEST.in 파일 지시문에 대한 설명은 Python 패키징 사용자 가이드를 참조하십시오.

샘플 프로젝트에서 두 개의 지시문이 포함되어 결과적으로 다음 MANIFEST.in 파일이 생성됩니다.

include inventory
recursive-include playbooks *.yml

이 파일을 사용하여 체크섬 매니페스트 파일을 생성하고 서명하십시오. 다음 두 단계는 모두 단일 ansible-sign 명령으로 수행됩니다.

$ ansible-sign project gpg-sign .

실행에 성공하면 다음과 유사한 출력이 표시됩니다.

[OK   ] GPG signing successful!
[NOTE ] Checksum manifest: ./.ansible-sign/sha256sum.txt
[NOTE ] GPG summary: signature created

이제 프로젝트에 서명되었습니다.

gpg-sign 하위 명령은 project 하위 명령에 있습니다.

프로젝트 콘텐츠에 서명하기 위해 모든 명령은 ansible-sign 프로젝트 로 시작합니다.

모든 ansible-sign 프로젝트 명령은 프로젝트 루트 디렉터리 . 를 최종 인수로 사용합니다.

Ansible-sign 은 기본 인증 키를 사용하고 프로젝트에 서명하기 위해 찾을 수 있는 첫 번째 사용 가능한 시크릿 키를 찾습니다. --fingerprint 옵션과 함께 사용할 특정 시크릿 키를 지정하거나 --gnupg-home 옵션을 사용하여 완전히 독립적인 GPG 홈 디렉터리도 지정할 수 있습니다.

참고

데스크탑 환경을 사용하는 경우 GnuPG는 시크릿 키의 암호를 자동으로 입력하라는 메시지를 표시합니다.

이 기능이 작동하지 않거나 데스크탑 환경(예: SSH를 통해) 없이 작업하는 경우 gpg-sign-p --prompt-passphrase 플래그를 사용하면 ansible-sign 이 대신 암호를 입력하라는 메시지가 표시됩니다.

.ansible-sign 디렉터리가 프로젝트 디렉터리에 생성되었습니다. 이 디렉터리에는 체크섬 매니페스트 및 GPG 분리 서명이 포함되어 있습니다.

$ tree -a .
.
├── .ansible-sign
│   ├── sha256sum.txt
│   └── sha256sum.txt.sig
├── inventory
├── MANIFEST.in
└── playbooks
    ├── get_uptime.yml
    └── hello.yml
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.