|ah||at|는 콘텐츠 공급자 역할을 하며, 이를 위해서는 |at| 배포와 Automation Hub 배포가 함께 실행되어야 합니다. Ansible Automation Platform 설치 프로그램에는 이 두 가지가 모두 포함됩니다. 이 섹션에서는 업그레이드 프로세스의 각 구성 요소에 관해 설명합니다.
참고
모든 업그레이드에서 현재 업그레이드 중인 대상 버전과 주요 버전의 차이가 두 버전 이하여야 합니다. 예를 들어, automation controller 4.0으로 업그레이드하려면 먼저 버전이 3.8.x여야 합니다. 즉, 버전 3.7.x 이전 버전에서는 직접 업그레이드할 수 있는 경로가 없습니다. Red Hat Customer Portal에서 `recommended upgrade path article <https://access.redhat.com/articles/4098921>`_를 참조하십시오.
automation controller 4.0을 실행하려면 Ansible 2.10도 있어야 합니다.
이 섹션에서는 automation controller 인스턴스를 업그레이드하려고 할 때 고려해야 할 변경 사항을 설명합니다.
이전 버전의 유효한 라이센스가 이미 있는 경우에도 최신 자동화 컨트롤러로 업그레이드할 때 인증 정보 또는 서브스크립션 매니페스트를 제공해야 합니다. |atu|의 :ref:`import_subscription`을 참조하십시오.
Red Hat Enterprise Linux 및 |at|를 업그레이드해야 하는 경우 컨트롤러 데이터(자동화 컨트롤러에서)의 백업 및 복원을 수행해야 합니다. 자세한 내용은 |ata|의 :ref:`ag_backup_restore`을 참조하십시오.
클러스터형 업그레이드에서는 업그레이드를 시작하기 전에 인스턴스 및 인스턴스 그룹에 특별히 주의해야 합니다. 자세한 내용은 setup_inventory_file 및 :ref:`ag_clustering`를 참조하십시오.
자세한 내용은 `Red Hat Customer Portal <https://access.redhat.com/>`의 `Choosing and obtaining a Red Hat Ansible Automation Platform installer <https://access.redhat.com/documentation/en-us/red_hat_ansible_automation_platform/2.2/html-single/red_hat_ansible_automation_platform_installation_guide/index#choosing_and_obtaining_a_red_hat_ansible_automation_platform_installer>`을 참조하십시오. Red Hat 고객 로그인을 사용하여 전체 컨텐츠에 액세스하십시오.
인벤토리 파일을 편집할 때는 다음 몇 가지 사항을 고려해야 합니다.
인벤토리 파일의 콘텐츠는 ./setup.sh
설치 프로그램 플레이북 옆의 ``./inventory``에 정의되어 있어야 합니다.
설치 및 업그레이드: 외부 데이터베이스를 사용해야 하는 경우 인벤토리 파일의 데이터베이스 섹션이 올바르게 설정되어 있는지 확인해야 합니다. 설정 스크립트를 실행하기 전에 이 파일을 편집하고 외부 데이터베이스 정보를 추가합니다.
Ansible Automation Platform 또는 Automation Hub: [automationhub] 그룹에 자동화 허브 호스트를 추가해야 합니다(Tower와 Automation Hub를 동일한 노드에 설치할 수 없음).
Tower는 사용자가 보유한 복제본을 사용하여 작업해야 하지만 사용하는 데이터베이스에 대한 복제 또는 장애 조치를 구성하지 않습니다.
데이터베이스 서버는 성능상의 이유로 Tower 서버와 동일한 네트워크 또는 동일한 데이터 센터에 있어야 합니다.
기존 클러스터 업그레이드: 클러스터를 업그레이드할 때 기존 인스턴스 또는 인스턴스 그룹을 생략하도록 클러스터를 재구성할 수도 있습니다. 인벤토리 파일에서 인스턴스 또는 인스턴스 그룹을 생략하는 것만으로는 클러스터에서 제거되지 않습니다. 인벤토리 파일에서 인스턴스 또는 인스턴스 그룹을 생략하는 것 외에도 업그레이드를 시작하기 전에 :ref:`deprovision instances or instance groups <administration:ag_cluster_deprovision>`을 실행해야 합니다. 그러지 않으면 생략된 인스턴스 또는 인스턴스 그룹이 클러스터와 계속 통신하므로 업그레이드하는 동안 Tower 서비스에 문제가 발생할 수 있습니다.
클러스터형 설치: 클러스터형 설정을 생성하는 경우 ``localhost``를 모든 인스턴스의 호스트 이름 또는 IP 주소로 교체해야 합니다. 모든 노드/인스턴스는 이 호스트 이름 또는 주소를 사용하여 다른 노드/인스턴스에 도달할 수 있어야 합니다. 즉, 노드 중 하나에 ``localhost ansible_connection=local``을 사용할 수 없고 모든 노드에서 호스트 이름에 동일한 형식을 사용해야 합니다.
따라서 다음 스크립트는 작동하지 않습니다.
[tower]
localhost ansible_connection=local
hostA
hostB.example.com
172.27.0.4
대신 다음 형식을 사용하십시오.
[tower]
hostA
hostB
hostC
또는
hostA.example.com
hostB.example.com
hostC.example.com
또는
[tower]
172.27.0.2
172.27.0.3
172.27.0.4
모든 표준 설치: 설치를 수행할 때 인벤토리 파일에서 필요한 암호를 제공해야 합니다.
참고
이제 설치 프로세스를 변경하려면 인벤토리 파일의 모든 암호 필드를 작성해야 합니다. 해당 값이 있는 위치를 알아야 하는 경우 다음과 같습니다.
admin_password=''
<– Tower 로컬 관리자 암호
pg_password=''
<—- /etc/tower/conf.d/postgres.py
경고
``pg_password``에 특수 문자를 사용하지 마십시오. 설정이 실패할 수 있습니다.
새 노드 프로비저닝: 프로비저닝된 새 노드가 모든 현재 노드가 포함된 인벤토리 파일에 추가되는 경우, 모든 암호가 인벤토리 파일에 포함되어 있는지 확인합니다.
단일 노드 업그레이드: 업그레이드 시 인벤토리 파일을 현재 릴리스 버전과 비교하십시오. 업그레이드를 수행할 때도 암호를 여기에 보관하는 것이 좋습니다.
[automationhub]
automationhub.acme.org
[all:vars]
automationhub_admin_password='<password>'
automationhub_pg_host=''
automationhub_pg_port=''
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='<password>'
automationhub_pg_sslmode='prefer'
# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key
[tower]
tower.acme.org
[automationhub]
automationhub.acme.org
[database]
database-01.acme.org
[all:vars]
admin_password='<password>'
pg_host='database-01.acme.org'
pg_port='5432'
pg_database='awx'
pg_username='awx'
pg_password='<password>'
pg_sslmode='prefer' # set to 'verify-full' for client-side enforced SSL
# Automation Hub Configuration
#
automationhub_admin_password='<password>'
automationhub_pg_host='database-01.acme.org'
automationhub_pg_port='5432'
automationhub_pg_database='automationhub'
automationhub_pg_username='automationhub'
automationhub_pg_password='<password>'
automationhub_pg_sslmode='prefer'
# The default install will deploy a TLS enabled Automation Hub.
# If for some reason this is not the behavior wanted one can
# disable TLS enabled deployment.
#
# automationhub_disable_https = False
# The default install will generate self-signed certificates for the Automation
# Hub service. If you are providing valid certificate via automationhub_ssl_cert
# and automationhub_ssl_key, one should toggle that value to True.
#
# automationhub_ssl_validate_certs = False
# Isolated Tower nodes automatically generate an RSA key for authentication;
# To disable this behavior, set this value to false
# isolated_key_generation=true
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in nginx for the web UI and API
# web_server_ssl_cert=/path/to/tower.cert
# web_server_ssl_key=/path/to/tower.key
# Certificate and key to install in Automation Hub node
# automationhub_ssl_cert=/path/to/automationhub.cert
# automationhub_ssl_key=/path/to/automationhub.key
# Server-side SSL settings for PostgreSQL (when we are installing it).
# postgres_use_ssl=False
# postgres_ssl_cert=/path/to/pgsql.crt
# postgres_ssl_key=/path/to/pgsql.key
[tower]
localhost ansible_connection=local
[database]
[all:vars]
admin_password='password'
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
pg_password='password'
경고
``pg_password``에 특수 문자를 사용하지 마십시오. 설정이 실패할 수 있습니다.
[tower]
clusternode1.example.com
clusternode2.example.com
clusternode3.example.com
[database]
dbnode.example.com
[all:vars]
ansible_become=true
admin_password='password'
pg_host='dbnode.example.com'
pg_port='5432'
pg_database='tower'
pg_username='tower'
pg_password='password'
경고
``pg_password``에 특수 문자를 사용하지 마십시오. 설정이 실패할 수 있습니다.
[tower]
node.example.com ansible_connection=local
[database]
[all:vars]
admin_password='password'
pg_password='password'
pg_host='database.example.com'
pg_port='5432'
pg_database='awx'
pg_username='awx'
경고
``pg_password``에 특수 문자를 사용하지 마십시오. 설정이 실패할 수 있습니다.
[tower]
node.example.com ansible_connection=local
[database]
database.example.com
[all:vars]
admin_password='password'
pg_password='password'
pg_host='database.example.com'
pg_port='5432'
pg_database='awx'
pg_username='awx'
경고
``pg_password``에 특수 문자를 사용하지 마십시오. 설정이 실패할 수 있습니다.
필요한 변경이 완료되면 ``./setup.sh``를 실행할 준비가 된 것입니다.
참고
원격 머신에는 루트 액세스 권한이 필요합니다. Ansible을 사용하면 다음과 같이 다양한 방법으로 루트 액세스 권한을 얻을 수 있습니다.
ansible_user=root ansible_ssh_pass=》your_password_here》 인벤토리 호스트 또는 그룹 변수
ansible_user=root ansible_ssh_private_key_file=》path_to_your_keyfile.pem》 인벤토리 호스트 또는 그룹 변수
ANSIBLE_BECOME_METHOD=〉sudo〉 ANSIBLE_BECOME=True ./setup.sh
ANSIBLE_SUDO=True ./setup.sh (Ansible 2.7에만 해당)
DEFAULT_SUDO
Ansible 구성 매개변수는 Ansible 2.8에서 제거되어 권한 에스컬레이션의 ANSIBLE_SUDO=True ./setup.sh
메서드가 더 이상 작동하지 않습니다. become
플러그인에 대한 자세한 내용은 Understanding Privilege Escalation 및 `list of become plugins`_을 참조하십시오.
Tower 설정 플레이북 스크립트는 inventory
파일을 사용하고 Tower 설치 프로그램 tarball의 압축을 푼 경로에서 ``./setup.sh``로 호출됩니다.
root@localhost:~$ ./setup.sh
설정 스크립트에서는 다음 인수를 사용합니다.
-h
– 이 도움말 메시지 표시 및 종료
-i INVENTORY_FILE
– Ansible 인벤토리 파일 경로(기본값: inventory
)
-e EXTRA_VARS
– 추가 Ansible 변수를 key=value 또는 YAML/JSON으로 설정(즉, ``-e bundle_install=false``는 온라인 설치 강제 수행)
-b
– 설치 대신 데이터베이스 백업 수행
-r
– 설치 대신 데이터베이스 복원 수행(아래의 코드 예제에 표시된 것처럼 EXTRA_VARS에 기본값이 아닌 경로를 제공하는 경우를 제외하고 기본 복원 경로가 사용됨)
./setup.sh -e 'restore_backup_file=/path/to/nondefault/location' -r