검색

1.6. 설치 프로그램 인벤토리 파일 정보

download PDF

Red Hat Ansible Automation Platform은 인벤토리 파일을 사용하여 논리적으로 구성된 인프라의 관리 노드 또는 호스트 목록에 대해 작동합니다. Red Hat Ansible Automation Platform 설치 프로그램 인벤토리 파일을 사용하여 설치 시나리오를 지정하고 Ansible에 대한 호스트 배포를 설명할 수 있습니다. Ansible은 인벤토리 파일을 사용하여 단일 명령으로 다수의 호스트를 관리할 수 있습니다. 또한 인벤토리를 사용하면 지정해야 하는 명령줄 옵션의 수를 줄임으로써 Ansible을 보다 효율적으로 사용할 수 있습니다.

인벤토리 파일은 보유 중인 인벤토리 플러그인에 따라 여러 형식 중 하나일 수 있습니다. 가장 일반적인 형식은 INIYAML 입니다. 이 문서에 나열된 인벤토리 파일은 INI 형식으로 표시됩니다.

인벤토리 파일의 위치는 사용한 설치 프로그램에 따라 다릅니다. 다음 표에서는 가능한 위치를 보여줍니다.

설치 프로그램위치

bundle tar

/ansible-automation-platform-setup-bundle-<latest-version>

번들 이외의 tar

/ansible-automation-platform-setup-<latest-version>

RPM

/opt/ansible-automation-platform/installer

다음 명령을 사용하여 인벤토리에서 호스트를 확인할 수 있습니다.

ansible all -i <path-to-inventory-file. --list-hosts

인벤토리 파일 예

[automationcontroller]
host1.example.com
host2.example.com
Host4.example.com

[automationhub]
host3.example.com

[database]
Host5.example.com

[all:vars]
admin_password='<password>'

pg_host=''
pg_port=''

pg_database='awx'
pg_username='awx'
pg_password='<password>'

registry_url='registry.redhat.io'
registry_username='<registry username>'
registry_password='<registry password>'

인벤토리 파일의 첫 번째 부분에서는 Ansible이 사용할 수 있는 호스트 또는 그룹을 지정합니다.

1.6.1. 호스트 및 그룹에 대한 지침

데이터베이스

  • 외부 데이터베이스를 사용하는 경우 인벤토리 파일의 [database] 섹션이 올바르게 설정되어 있는지 확인합니다.
  • 성능을 향상하려면 동일한 서버에서 데이터베이스 및 자동화 컨트롤러를 공동 배치하지 마십시오.

Automation hub

  • [automationhub] 그룹에 Ansible 자동화 허브 정보 추가
  • 동일한 노드에 Ansible 자동화 허브 및 자동화 컨트롤러를 설치하지 마십시오.
  • [automationhub] 호스트에 연결할 수 있는 IP 주소 또는 정규화된 도메인 이름(FDQN)을 제공하여 사용자가 다른 노드의 Ansible 자동화 허브에서 콘텐츠를 동기화하고 설치할 수 있는지 확인합니다. localhost 를 사용하지 마십시오.
중요

[database] 그룹이 둘 다 동시에 설치된 경우 둘을 구분하지 않으므로 자동화 컨트롤러와 Ansible 자동화 허브 설치를 분리해야 합니다.

[database] 및 자동화 컨트롤러와 Ansible 자동화 허브에서 하나의 값을 사용하는 경우 동일한 데이터베이스를 사용합니다.

자동화 컨트롤러

  • 자동화 컨트롤러는 사용하는 데이터베이스에 대한 복제 또는 장애 조치를 구성하지 않습니다. 자동화 컨트롤러는 사용자가 보유한 복제에서 작동합니다.

클러스터형 설치

  • 기존 클러스터를 업그레이드할 때 기존 인스턴스 또는 인스턴스 그룹을 생략하도록 클러스터를 재구성할 수도 있습니다. 인벤토리 파일에서 인스턴스 또는 인스턴스 그룹을 생략하는 것만으로는 클러스터에서 해당 인스턴스를 제거하기에 충분하지 않습니다. 인벤토리 파일에서 인스턴스 또는 인스턴스 그룹을 생략하는 것 외에도 업그레이드를 시작하기 전에 인스턴스 또는 인스턴스 그룹도 프로비저닝 해제해야 합니다. 노드 또는 그룹 프로비저닝 을 참조하십시오. 그렇지 않으면 인스턴스 또는 인스턴스 그룹이 계속 클러스터와 통신하므로 업그레이드 중에 자동화 컨트롤러 서비스에 문제가 발생할 수 있습니다.
  • 클러스터형 설치 설정을 생성하는 경우 [localhost] 를 모든 인스턴스의 호스트 이름 또는 IP 주소로 교체해야 합니다. 자동화 컨트롤러, 자동화 허브 및 자동화 서비스 카탈로그의 설치 프로그램은 [localhost] 모든 노드 및 인스턴스를 이 호스트 이름 또는 주소를 사용하여 다른 노드에 연결할 수 있어야 합니다. 즉 노드 중 하나에서 localhost ansible_connection=local 을 사용할 수 없습니다. 모든 노드의 호스트 이름에 동일한 형식을 사용합니다.

    따라서 이 작업이 작동하지 않습니다.

    [automationhub]
    localhost ansible_connection=local
    hostA
    hostB.example.com
    172.27.0.4

    대신 다음 형식을 사용하십시오.

    [automationhub]
    hostA
    hostB
    hostC

    또는

    [automationhub]
    hostA.example.com
    hostB.example.com
    hostC.example.com

1.6.2. 노드 또는 그룹 프로비저닝 해제

Ansible Automation Platform 설치 프로그램을 사용하여 노드 및 인스턴스 그룹을 프로비저닝 해제할 수 있습니다. 설치 프로그램을 실행하면 구성 파일과 그룹의 노드에 연결된 로그가 모두 제거됩니다.

참고

[automationcontroller] 그룹에 지정된 첫 번째 호스트를 제외하고 인벤토리의 호스트 프로비저닝을 해제할 수 있습니다.

노드를 프로비저닝 해제하려면 node_state=deprovision 을 인벤토리 파일 내의 노드 또는 그룹에 추가합니다.

예를 들면 다음과 같습니다.

배포에서 단일 노드를 제거하려면 다음을 수행합니다.

[automationcontroller]
host1.example.com
host2.example.com
host4.example.com   node_state=deprovision

또는

배포에서 전체 인스턴스 그룹을 제거하려면 다음을 수행합니다.

[instance_group_restrictedzone]
host4.example.com
host5.example.com

[instance_group_restrictedzone:vars]
node_state=deprovision

1.6.3. 인벤토리 변수

예제 인벤토리 파일의 두 번째 부분 ([all:vars] )은 설치 프로그램에서 사용하는 변수 목록입니다. all 을 사용하면 변수가 모든 호스트에 적용됩니다.

특정 호스트에 변수를 적용하려면 [hostname:vars] 을 사용합니다. 예를 들면 [automationhub:vars] 입니다.

1.6.4. 인벤토리 파일에서 변수를 선언하는 규칙

문자열 변수 값은 따옴표로 선언됩니다. 예를 들면 다음과 같습니다.

pg_database='awx'
pg_username='awx'
pg_password='<password>'

:vars 섹션에 선언되면 INI 값이 문자열로 해석됩니다. 예를 들어 var=FALSE 는ECDHE과 동일한 문자열을 만듭니다. 호스트 행과 달리 :vars 섹션은 행당 단일 항목만 허용하므로 = 뒤에 있는 모든 항목은 항목의 값이어야 합니다. 호스트 행은 행당 여러 key=value 매개변수를 허용합니다. 따라서 공백이 구분자가 아닌 값의 일부임을 나타내는 방법이 필요합니다. 공백이 포함된 값을 따옴표로 묶을 수 있습니다(단일 또는 double). 자세한 내용은 Python shlex 구문 분석 규칙을 참조하십시오.

INI 인벤토리에 설정된 변수 값이 특정 유형(예: 문자열 또는 부울 값)이어야 하는 경우 작업에 필터가 있는 유형을 항상 지정합니다. 변수를 사용할 때 INI 인벤토리에서 설정한 유형에 의존하지 마십시오.

참고

실제 유형의 변수를 혼동하지 않도록 인벤토리 소스에 YAML 형식을 사용하는 것이 좋습니다. YAML 인벤토리 플러그인은 변수 값을 일관되게 그리고 올바르게 처리합니다.

Ansible 인벤토리 파일의 매개변수 값에 #, { 또는 }와 같은 특수 문자가 포함된 경우 값을 이중 이스케이프해야 합니다(단일 및 이중 따옴표로 값 묶임).

예를 들어 mypasswordwith#hashsigns 를 변수 pg_password 의 값으로 사용하려면 Ansible 호스트 인벤토리 파일에서 pg_password='"mypasswordwith#hashsigns" 로 선언합니다.

1.6.5. 인벤토리 파일에서 보안 보안

Ansible Vault를 사용하여 민감한 변수 또는 시크릿 변수를 암호화할 수 있습니다. 그러나 변수 이름과 변수 값을 암호화하면 값의 소스를 찾기가 어렵습니다. 이를 우회하려면 ansible-vault encrypt_string 을 사용하여 변수를 개별적으로 암호화하거나 변수가 포함된 파일을 암호화할 수 있습니다.

절차

  1. 암호화된 자격 증명을 저장할 credentials.yml 레이블이 지정된 파일을 만듭니다.

    $ cat credentials.yml
    
    admin_password: my_long_admin_pw
    pg_password: my_long_pg_pw
    registry_password: my_long_registry_pw
  2. ansible-vault 를 사용하여 credentials.yml 파일을 암호화합니다.

    $ ansible-vault encrypt credentials.yml
    New Vault password:
    Confirm New Vault password:
    Encryption successful
    중요

    암호화된 자격 증명 모음 암호를 안전한 위치에 저장합니다.

  3. credentials.yml 파일이 암호화되었는지 확인합니다.

    $ cat credentials.yml
    $ANSIBLE_VAULT;1.1;
    AES256363836396535623865343163333339613833363064653364656138313534353135303764646165393765393063303065323466663330646232363065316666310a373062303133376339633831303033343135343839626136323037616366326239326530623438396136396536356433656162333133653636616639313864300a353239373433313339613465326339313035633565353464356538653631633464343835346432376638623533613666326136343332313163343639393964613265616433363430633534303935646264633034383966336232303365383763
  4. Ansible Automation Platform 2.2를 설치하려면 setup.sh 를 실행하고 credentials.yml--ask-vault-pass 옵션을 모두 전달합니다.

    $ ANSIBLE_BECOME_METHOD='sudo' ANSIBLE_BECOME=True ANSIBLE_HOST_KEY_CHECKING=False ./setup.sh -e @credentials.yml -- --ask-vault-pass

1.6.6. 추가 인벤토리 파일 변수

인벤토리 파일에 추가 변수를 포함하여 Red Hat Ansible Automation Platform 설치를 추가로 구성할 수 있습니다. 이러한 구성은 Red Hat Ansible Automation Platform 관리를 위한 선택적 기능을 추가합니다. 텍스트 편집기를 사용하여 인벤토리 파일을 편집하여 이러한 변수를 추가합니다.

인벤토리 파일 변수에 대한 사전 정의된 값의 표는 부록 A: 인벤토리 파일 변수에서 확인할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.