4장. 노드를 실행하도록 격리된 노드 마이그레이션

버전 1.x에서 최신 버전의 Red Hat Ansible Automation Platform으로 업그레이드하려면 플랫폼 관리자가 분리된 레거시 노드에서 실행 노드로 데이터를 마이그레이션해야 합니다. 이 마이그레이션은 자동화 메시를 배포하는 데 필요합니다.

이 가이드에서는 side-by-side 마이그레이션을 수행하는 방법을 설명합니다. 이렇게 하면 마이그레이션 프로세스 중에 원래 자동화 환경의 데이터가 변경되지 않은 상태로 유지됩니다.

마이그레이션 프로세스에는 다음 단계가 포함됩니다.

  1. 업그레이드 구성을 확인합니다.
  2. 원래 인스턴스를 백업합니다.
  3. side-by-side 업그레이드를 위해 새 인스턴스를 배포합니다.
  4. ansible 컨트롤러를 사용하여 새 인스턴스에서 인스턴스 그룹을 재생성합니다.
  5. 원래 백업을 새 인스턴스로 복원합니다.
  6. 실행 노드를 설정하고 인스턴스를 Red Hat Ansible Automation Platform 2.2로 업그레이드합니다.
  7. 업그레이드된 컨트롤러 인스턴스를 구성합니다.

4.1. Ansible Automation Platform을 업그레이드하기 위한 사전 요구 사항

Ansible Automation Platform 업그레이드를 시작하기 전에 환경이 다음 노드 및 구성 요구 사항을 충족하는지 확인하십시오.

4.1.1. 노드 요구 사항

Ansible Automation Platform 업그레이드 프로세스에 포함된 노드에는 다음 사양이 필요합니다.

  • 컨트롤러 노드, 데이터베이스 노드, 실행 노드 및 홉 노드용 16GB의 RAM입니다.
  • 컨트롤러 노드, 데이터베이스 노드, 실행 노드, 홉 노드의 CPU 4개입니다.
  • 데이터베이스 노드의 150GB 이상의 디스크 공간
  • 데이터베이스 이외의 노드의 40GB 이상의 디스크 공간
  • DHCP 예약은 무한 리스를 사용하여 고정 IP 주소로 클러스터를 배포합니다.
  • 모든 노드의 DNS 레코드입니다.
  • 모든 노드에 대해 Red Hat Enterprise Linux 8 이상이 설치된 64비트(x86)입니다.
  • Chrony가 모든 노드에 대해 구성됩니다.
  • 모든 콘텐츠 종속 항목에 대한 Python 3.9 이상.

4.1.2. 자동화 컨트롤러 구성 요구 사항

Ansible Automation Platform 업그레이드 프로세스를 진행하기 전에 다음 자동화 컨트롤러 구성이 필요합니다.

Chrony를 사용하여 NTP 서버 구성

클러스터의 각 Ansible Automation Platform 노드는 NTP 서버에 액세스할 수 있어야 합니다. chronyd 를 사용하여 시스템 클럭을 NTP 서버와 동기화합니다. 이렇게 하면 노드 간 날짜와 시간이 동기화되지 않은 경우 검증이 필요한 SSL 인증서를 사용하는 클러스터 노드가 실패합니다.

이는 업그레이드된 Ansible Automation Platform 클러스터에서 사용되는 모든 노드에 필요합니다.

  1. Chrony 설치:

    # dnf install chrony --assumeyes
  2. 텍스트 편집기를 사용하여 /etc/chrony.conf 를 엽니다.
  3. 공용 서버 풀 섹션을 찾아서 적절한 NTP 서버 주소를 포함하도록 수정합니다. 하나의 서버만 필요하지만 3개가 권장됩니다. 서버와 올바르게 동기화하는 데 걸리는 시간을 단축하려면 'iburst' 옵션을 추가합니다.

    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    server <ntp-server-address> iburst
  4. /etc/chrony.conf 파일에 변경 사항을 저장합니다.
  5. 호스트를 시작하고 chronyd 데몬을 활성화합니다.

    # systemctl --now enable chronyd.service
  6. chronyd 데몬 상태를 확인합니다.

    # systemctl status chronyd.service

모든 노드에 Red Hat 서브스크립션 연결

Red Hat Ansible Automation Platform에서는 모든 노드에 유효한 서브스크립션을 연결해야 합니다. 다음 명령을 실행하여 현재 노드에 Red Hat 서브스크립션이 있는지 확인할 수 있습니다.

# subscription-manager list --consumed

노드에 Red Hat 서브스크립션이 없는 경우 자세한 내용은 Ansible Automation Platform 서브스크립션 연결을 참조하십시오.

sudo 권한을 사용하여 root가 아닌 사용자 생성

Ansible Automation Platform을 업그레이드하기 전에 배포 프로세스에 대해 sudo 권한이 있는 루트가 아닌 사용자를 생성하는 것이 좋습니다. 이 사용자는 다음을 위해 사용됩니다.

  • SSH 연결.
  • 설치 중 암호 없는 인증입니다.
  • 권한 상승(sudo) 권한.

다음 예제에서는 ansible 을 사용하여 이 사용자의 이름을 지정합니다. 업그레이드된 Ansible Automation Platform 클러스터에서 사용되는 모든 노드에서 ansible 이라는 루트가 아닌 사용자를 생성하고 ssh 키를 생성합니다.

  1. root가 아닌 사용자를 만듭니다.

    # useradd ansible
  2. 사용자 암호를 설정합니다.

    # passwd ansible 1
    Changing password for ansible.
    Old Password:
    New Password:
    Retype New Password:
    1
    다른 이름을 사용하는 경우 ansible 을 1단계에서 루트가 아닌 사용자로 바꿉니다.
  3. 사용자로 ssh 키를 생성합니다.

    $ ssh-keygen -t rsa
  4. sudo 사용 시 암호를 요구하지 않도록 비활성화합니다.

    # echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/ansible

SSH 키를 모든 노드에 복사

ansible 사용자가 생성된 상태에서 업그레이드된 Ansible Automation Platform 클러스터에서 사용된 모든 노드에 ssh 키를 복사합니다. 이렇게 하면 Ansible Automation Platform 설치가 실행될 때 암호 없이 모든 노드에 ssh 를 실행할 수 있습니다.

$ ssh-copy-id ansible@node-1.example.com
참고

클라우드 공급자 내에서 실행하는 경우, 모든 노드에서 ansible 사용자의 공개 키가 포함된 ~/.ssh/authorized_keys 파일을 생성하고 권한을 읽기 및 쓰기 액세스 권한(권한 600)이 있는 authorized_keys 파일로만 설정해야 할 수 있습니다.

방화벽 설정 구성

Ansible Automation Platform 업그레이드를 위해 적절한 서비스 및 포트에 대한 액세스를 허용하도록 업그레이드된 Ansible Automation Platform 클러스터에서 사용되는 모든 노드에서 방화벽 설정을 구성합니다. Red Hat Enterprise Linux 8 이상의 경우 firewalld 데몬을 활성화하여 모든 노드에 필요한 액세스를 활성화합니다.

  1. firewalld 패키지를 설치합니다.

    # dnf install firewalld --assumeyes
  2. firewalld 서비스를 시작합니다.

    # systemctl start firewalld
  3. firewalld 서비스를 활성화합니다.

    # systemctl enable --now firewalld

4.1.3. Ansible Automation Platform 구성 요구 사항

Ansible Automation Platform 업그레이드 프로세스를 진행하기 전에 다음 Ansible Automation Platform 구성이 필요합니다.

실행 및 홉 노드의 방화벽 설정 구성

Red Hat Ansible Automation Platform 인스턴스를 업그레이드한 후 메시 노드에 자동화 메시 포트를 추가하여 자동화 메시 기능을 활성화합니다. 모든 노드의 메시 네트워크에 사용되는 기본 포트는 27199/tcp 입니다. recptor_listener_port 를 인벤토리 파일 내의 각 노드의 변수로 지정하여 다른 포트를 사용하도록 메시 네트워크를 구성할 수 있습니다.

홉 및 실행 노드 내에서 설치에 사용할 firewalld 포트를 설정합니다.

  1. firewalld 가 실행 중인지 확인합니다.

    $ sudo systemctl status firewalld
  2. 컨트롤러 데이터베이스 노드(예: 포트 27199)에 firewalld 포트를 추가합니다.

    $ sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
  3. firewalld 를 다시 로드합니다.

    $ sudo firewall-cmd --reload
  4. 포트가 열려 있는지 확인합니다.

    $ sudo firewall-cmd --list-ports