Identity Management를 사용하여 재해 복구 준비

Red Hat Enterprise Linux 8

ID 관리 배포에 영향을 미치는 재해 완화 설명서

초록

이 문서에서는 IdM 배포를 위협하는 일반적인 재해 시나리오와 복제, 가상 시스템 스냅샷 및 백업을 통해 이러한 상황을 완화하는 방법을 설명합니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Identity Management에서 계획된 용어 교체는 다음과 같습니다.

  • 차단 목록 대체 블랙리스트
  • 목록 교체 허용 화이트리스트
  • 2차 대체 슬레이브
  • master 라는 단어는 컨텍스트에 따라 더 정확한 언어로 교체됩니다.

    • IdM 서버가 IdM 마스터교체
    • CA 갱신 서버가 CA 갱신 마스터교체
    • CRL 게시자 서버가 CRL 마스터교체
    • 멀티 공급자 대체 멀티 마스터

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 이를 개선할 수 있는지 알려 주십시오. 이렇게 하려면 다음을 수행합니다.

  • 특정 문구에 대한 간단한 주석은 다음과 같습니다.

    1. 문서가 Multi-page HTML 형식으로 표시되는지 확인합니다. 또한 문서 오른쪽 상단에 Feedback (피드백) 버튼이 있는지 확인합니다.
    2. 마우스 커서를 사용하여 주석 처리하려는 텍스트 부분을 강조 표시합니다.
    3. 강조 표시된 텍스트 아래에 표시되는 피드백 추가 팝업을 클릭합니다.
    4. 표시된 지침을 따릅니다.
  • 보다 상세하게 피드백을 제출하려면 다음과 같이 Bugzilla 티켓을 생성하십시오.

    1. Bugzilla 웹 사이트로 이동하십시오.
    2. Component로 Documentation을 선택하십시오.
    3. Description 필드에 문서 개선을 위한 제안 사항을 기입하십시오. 관련된 문서의 해당 부분 링크를 알려주십시오.
    4. Submit Bug를 클릭하십시오.

1장. IdM의 재해 복구 툴

우수한 재해 복구 전략은 최소한의 데이터 손실로 최대한 빨리 재해 복구를 위해 다음 툴을 결합합니다.

복제
복제는 IdM 서버 간에 데이터베이스 콘텐츠를 복사합니다. IdM 서버에 오류가 발생하면 나머지 서버 중 하나를 기반으로 새 복제본을 생성하여 손실된 서버를 교체할 수 있습니다.
VM(가상 머신) 스냅샷
스냅샷은 지정된 시점에서 사용 가능한 모든 디스크에 있는 VM의 운영 체제 및 애플리케이션 보기입니다. VM 스냅샷을 생성한 후에는 VM 및 해당 IdM 데이터를 이전 상태로 반환하는 데 사용할 수 있습니다.
IdM 백업
ipa-backup 유틸리티를 사용하면 IdM 서버의 구성 파일과 해당 데이터를 백업할 수 있습니다. 나중에 백업을 사용하여 IdM 서버를 이전 상태로 복원할 수 있습니다.

2장. IdM의 재해 시나리오

재해 시나리오에는 서버 손실과 데이터 손실 의 두 가지 주요 클래스가 있습니다.

표 2.1. 서버 손실 vs. 데이터 손실

재해 유형

원인의 예

준비 방법

서버 손실: IdM 배포에서는 하나 이상의 서버가 손실됩니다.

  • 하드웨어 오작동

데이터 손실: IdM 데이터는 서버에서 예기치 않게 수정되고 변경 사항이 다른 서버로 전파됩니다.

  • 사용자가 실수로 데이터를 삭제합니다
  • 소프트웨어 버그는 데이터를 수정합니다

3장. 복제를 사용하여 서버 손실 준비

서버 손실에 대응할 수 있는 복제 토폴로지를 구축하려면 다음 지침을 따르십시오.

이 섹션에서는 다음 주제를 다룹니다.

3.1. 토폴로지의 복제본 연결

각 복제본을 두 개 이상의 다른 복제본에 연결합니다
추가 복제 계약을 구성하면 초기 복제본과 설치한 첫 번째 서버뿐만 아니라 다른 복제본 간에도 정보가 복제됩니다.
복제본을 최대 4개의 다른 복제본에 연결합니다(하드 요구 사항은 아님)

서버당 다수의 복제 계약으로 인해 상당한 이점이 발생하지 않습니다. 수신 복제본은 한 번에 하나의 다른 복제본에서만 업데이트할 수 있으며 다른 복제 계약은 유휴 상태입니다. 일반적으로 복제본당 4개의 복제 계약은 리소스 낭비를 의미합니다.

참고

이 방법은 인증서 복제 및 도메인 복제 계약에 모두 적용됩니다.

복제본당 4개의 복제 계약 제한에 대한 두 가지 예외가 있습니다.

  • 특정 복제본이 온라인 또는 응답하지 않는 경우 장애 조치 경로를 원할 수 있습니다.
  • 대규모 배포에서는 특정 노드 간에 추가 직접 연결을 원할 수 있습니다.

다수의 복제 계약을 구성하면 전반적인 성능에 부정적인 영향을 줄 수 있습니다. 토폴로지의 여러 복제 계약이 업데이트를 보내는 경우 특정 복제본은 들어오는 업데이트와 나가는 업데이트 간의 changelog 데이터베이스 파일에 높은 경합을 경험할 수 있습니다.

복제본당 더 많은 복제 계약을 사용하기로 결정한 경우 복제 문제 및 대기 시간이 발생하지 않도록 해야 합니다. 그러나 큰 거리와 중간 노드의 수가 많은 경우에도 대기 시간 문제가 발생할 수 있습니다.

데이터 센터의 복제본을 서로 연결
이렇게 하면 데이터 센터 내에서 도메인 복제가 가능합니다.
각 데이터 센터를 다른 데이터 센터 두 개 이상에 연결합니다
이렇게 하면 데이터 센터 간 도메인 복제가 가능합니다.
적어도 복제 계약을 사용하여 데이터 센터 연결
데이터 센터 A와 B에 A1에서 B1의 복제 계약이 있는 경우 A2에서 B2로의 복제 계약을 체결하면 서버 중 하나가 다운되면 두 데이터 센터 간에 복제가 계속될 수 있습니다.

3.2. 복제 토폴로지 예

아래 그림은 신뢰할 수 있는 토폴로지를 생성하기 위한 지침을 기반으로 IdM(Identity Management) 토폴로지의 예를 보여줍니다.

복제본 토폴로지 예제 1 에서는 각각 4개의 서버가 있는 4개의 데이터 센터를 보여줍니다. 서버는 복제 계약과 연결되어 있습니다.

그림 3.1. 복제 토폴로지 예 1

4개의 데이터 센터 - Geo 1 ~ 4를 보여주는 다이어그램. 각 데이터 센터에는 복제 계약을 통해 서로 연결된 네 대의 서버가 있습니다. Geo 2에는 Geo 1에서 두 개의 서버로 두 서버를 연결하는 복제 계약도 있습니다. 이 패턴은 Geo 3의 두 개 서버와 Geo 4에 연결된 Geo 3의 두 서버에 연결된 Geo 2의 두 서버를 계속 지원합니다. 각 데이터 센터가 연결되어 있으므로 각 서버는 다른 Geo로부터 최대 3개의 홉을 홉니다.



복제 토폴로지 예제 2 에서는 각각 다른 서버 수가 있는 세 개의 데이터 센터를 보여줍니다. 서버는 복제 계약과 연결되어 있습니다.

그림 3.2. 복제 토폴로지 예 2

3개의 데이터 센터를 보여주는 다이어그램: Geo 1에는 각각 연결된 5대의 서버가 있습니다. Geo 2에는 두 서버가 서로 연결되어 있습니다. Geo 3에는 삼각형에 연결된 서버 3개가 있습니다. 다음 Geo에 있는 서버 두 개로 연결하는 각 Geo의 2개의 연결은 2개의 연결이 있습니다.

3.3. IdM CA 데이터 보호

배포에 통합된 IdM CA(인증 기관)가 포함된 경우 여러 CA 복제본을 설치하여 해당 복제본이 손실된 경우 추가 CA 복제본을 생성할 수 있습니다.

절차

  1. CA 서비스를 제공하도록 3개 이상의 복제본을 구성합니다.

    1. CA 서비스를 사용하여 새 복제본을 설치하려면 --setup -ca 옵션을 사용하여 ipa-replica- install 을 실행합니다.

      [root@server ~]# ipa-replica-install --setup-ca
    2. 기존 복제본에 CA 서비스를 설치하려면 ipa-ca-install 을 실행합니다.

      [root@replica ~]# ipa-ca-install
  2. CA 복제본 간 CA 복제 계약을 생성합니다.

    [root@careplica1 ~]# ipa topologysegment-add
    Suffix name: ca
    Left node: ca-replica1.example.com
    Right node: ca-replica2.example.com
    Segment name [ca-replica1.example.com-to-ca-replica2.example.com]: new_segment
    ---------------------------
    Added segment "new_segment"
    ---------------------------
      Segment name: new_segment
      Left node: ca-replica1.example.com
      Right node: ca-replica2.example.com
      Connectivity: both
주의

하나의 서버만 CA 서비스를 제공하며 손상되면 전체 환경이 손실됩니다. IdM CA를 사용하는 경우 Red Hat은 CA 서비스가 설치된 복제본이 3개 이상 있고 이 간에 CA 복제 계약을 사용하는 것이 좋습니다.

3.4. 추가 리소스

4장. VM 스냅샷을 사용하여 데이터 손실 준비

가상 머신(VM) 스냅샷은 IdM 서버의 전체 상태를 유지하기 때문에 데이터 복구 전략의 통합 구성 요소입니다.

  • 운영 체제 소프트웨어 및 설정
  • IdM 소프트웨어 및 설정
  • IdM 고객 데이터

CA( IdM 인증 기관) 복제본의 VM 스냅샷을 준비하면 재해 발생 후 전체 IdM 배포를 다시 빌드할 수 있습니다.

주의

환경에서 통합 CA를 사용하는 경우 인증서 데이터가 유지되지 않으므로 CA가 없는 복제본의 스냅샷으로 배포를 다시 빌드하는 데 충분하지 않습니다.

마찬가지로 환경에서 IdM KRA(키 복구 기관)를 사용하는 경우 KRA 복제본의 스냅샷을 생성하거나 스토리지 키가 손실될 수 있습니다.

배포에 사용 중인 모든 IdM 서버 역할이 설치된 VM의 스냅샷을 생성하는 것이 좋습니다. CA, KRA, DNS.

사전 요구 사항

  • RHEL VM을 호스팅할 수 있는 하이퍼바이저.

절차

  1. 배포에서 VM 내부에서 실행되도록 하나 이상의 CA 복제본을 구성합니다.

    1. 사용자 환경에서 IdM DNS 또는 KRA를 사용하는 경우 이 복제본에 DNS 및 KRA 서비스를 설치하는 것이 좋습니다.
    2. 선택적으로 이 VM 복제본을 숨겨진 복제본 으로 구성합니다.
  2. 이 VM을 정기적으로 종료하고 전체 스냅샷을 생성한 다음 복제 업데이트를 계속 받을 수 있도록 다시 온라인 상태가 됩니다. VM이 숨겨진 복제본인 경우 이 절차 중에 IdM 클라이언트가 중단되지 않습니다.

5장. IdM 백업을 사용하여 데이터 손실 준비

IdM은 IdM 데이터를 백업하는 ipa-backup 유틸리티와 해당 백업에서 서버 및 데이터를 복원하는 ipa-restore 유틸리티를 제공합니다.

이 섹션에서는 다음 주제를 다룹니다.

참고

Red Hat은 환경이 통합된 IdM CA를 사용하는 경우 필요한 만큼 모든 서버 역할이 설치된 숨겨진 복제본, 특히 CA(인증 기관) 역할에서 백업을 실행하는 것이 좋습니다. IdM 숨겨진 복제본 설치를 참조하십시오.

5.1. IdM 백업 유형

ipa-backup 유틸리티를 사용하면 다음 두 가지 유형의 백업을 생성할 수 있습니다.

전체 서버 백업
  • IdM과 관련된 모든 서버 구성 파일과 LDAP 데이터 교환 형식(LDIF) 파일을 포함합니다.
  • IdM 서비스는 오프라인 이어야 합니다.
  • 처음부터 IdM 배포를 다시 빌드하는 데 적합합니다.
데이터 전용 백업
  • LDIF 파일에 LDAP 데이터 포함 및 복제 변경 로그
  • IdM 서비스는 온라인 또는 오프라인 이 될 수 있습니다.
  • IdM 데이터를 과거의 상태로 복원하는 데 적합합니다.

5.2. IdM 백업 파일의 명명 규칙

기본적으로 IdM은 백업을 /var/lib/ipa/backup/ 디렉토리의 하위 디렉토리에 .tar 아카이브로 저장합니다.

아카이브 및 하위 디렉터리는 다음 명명 규칙을 따릅니다.

전체 서버 백업

ipa-full- <YEAR-MM-DD-HH-MM-SS>라는 디렉터리에 있는 ipa-full.tar 이라는 아카이브로, time을 time로 지정합니다.

[root@server ~]# ll /var/lib/ipa/backup/ipa-full-2021-01-29-12-11-46
total 3056
-rw-r--r--. 1 root root     158 Jan 29 12:11 header
-rw-r--r--. 1 root root 3121511 Jan 29 12:11 ipa-full.tar
데이터 전용 백업

ipa-data- <YEAR-MM-DD-HH-MM-SS>라는 디렉터리에 있는 ipa-data.tar 이라는 아카이브로, time을 time로 지정합니다.

[root@server ~]# ll /var/lib/ipa/backup/ipa-data-2021-01-29-12-14-23
total 1072
-rw-r--r--. 1 root root     158 Jan 29 12:14 header
-rw-r--r--. 1 root root 1090388 Jan 29 12:14 ipa-data.tar
참고

IdM 서버를 설치 제거해도 백업 파일이 자동으로 제거되지는 않습니다.

5.3. 백업 생성 시 고려 사항

이 섹션에서는 ipa-backup 명령의 중요한 동작 및 제한 사항에 대해 설명합니다.

  • 기본적으로 ipa-backup 유틸리티는 오프라인 모드로 실행되므로 모든 IdM 서비스를 중지합니다. 백업이 완료되면 유틸리티에서 IdM 서비스를 자동으로 다시 시작합니다.
  • 전체 서버 백업은 항상 IdM 서비스에서 오프라인으로 실행해야 하지만 데이터 전용 백업은 온라인 서비스를 사용하여 수행할 수 있습니다.
  • 기본적으로 ipa-backup 유틸리티는 /var/lib/ipa/backup/ 디렉터리가 포함된 파일 시스템에 백업을 생성합니다. Red Hat은 IdM에서 사용하는 프로덕션 파일 시스템과 별도로 파일 시스템에 정기적으로 백업을 생성하고, 백업을 고정 미디어(예: 테이프 또는 광 스토리지)로 보관하는 것이 좋습니다.
  • 숨겨진 복제본 에서 백업을 수행하는 것이 좋습니다. IdM 서비스는 IdM 클라이언트에 영향을 주지 않고 숨겨진 복제본에서 종료할 수 있습니다.
  • RHEL 8.3.0부터 ipa-backup 유틸리티는 백업을 실행 중인 서버에 CA(인증 기관), DNS(Domain Name System), KRA(Key Recovery Agent)와 같은 IdM 클러스터에서 사용하는 모든 서비스가 설치되어 있는지 확인합니다. 서버에 이러한 서비스가 모두 설치되어 있지 않으면 ipa-backup 유틸리티가 경고로 종료됩니다. 해당 호스트에서 수행한 백업은 전체 클러스터 복원에 충분하지 않기 때문입니다.

    예를 들어 IdM 배포에서 통합 CA(인증 기관)를 사용하는 경우 비CA 복제본에서 실행되는 백업은 CA 데이터를 캡처하지 않습니다. Red Hat은 ipa-backup 을 수행하는 복제본에 클러스터에 사용된 모든 IdM 서비스가 설치되어 있는지 확인하는 것이 좋습니다.

    ipa-backup --disable-role-check 명령을 사용하여 IdM 서버 역할 확인을 바이패스할 수 있지만 결과 백업에는 IdM을 완전히 복원하는 데 필요한 모든 데이터가 포함되어 있지 않습니다.

5.4. IdM 백업 생성

이 섹션에서는 ipa-backup 명령을 사용하여 오프라인 및 온라인 모드에서 전체 서버와 데이터 전용 백업을 생성하는 방법에 대해 설명합니다.

사전 요구 사항

  • ipa-backup 유틸리티를 실행하려면 root 권한이 있어야 합니다.

절차

  • 오프라인 모드에서 전체 서버 백업을 생성하려면 추가 옵션 없이 ipa-backup 유틸리티를 사용합니다.

    [root@server ~]# ipa-backup
    Preparing backup on server.example.com
    Stopping IPA services
    Backing up ipaca in EXAMPLE-COM to LDIF
    Backing up userRoot in EXAMPLE-COM to LDIF
    Backing up EXAMPLE-COM
    Backing up files
    Starting IPA service
    Backed up to /var/lib/ipa/backup/ipa-full-2020-01-14-11-26-06
    The ipa-backup command was successful
  • 오프라인 데이터 전용 백업을 생성하려면 --data 옵션을 지정합니다.

    [root@server ~]# ipa-backup --data
  • IdM 로그 파일이 포함된 전체 서버 백업을 생성하려면 --logs 옵션을 사용합니다.

    [root@server ~]# ipa-backup --logs
  • IdM 서비스가 실행되는 동안 데이터 전용 백업을 생성하려면 --data 및 -- online 옵션을 둘 다 지정합니다.

    [root@server ~]# ipa-backup --data --online
참고

/tmp 디렉토리에 공간이 부족하여 백업에 실패하는 경우 TMPDIR 환경 변수를 사용하여 백업 프로세스에서 생성된 임시 파일의 대상을 변경합니다.

[root@server ~]# TMPDIR=/new/location ipa-backup

자세한 내용은 ipa-backup 명령 실패를 참조하십시오.

검증 단계

  • 백업 디렉터리에는 백업이 있는 아카이브가 포함되어 있습니다.

    [root@server ~]# ls /var/lib/ipa/backup/ipa-full-2020-01-14-11-26-06
    header  ipa-full.tar

5.5. GPG2 암호화 IdM 백업 생성

GPG(GNU Privacy Guard) 암호화를 사용하여 암호화된 백업을 생성할 수 있습니다. 다음 절차에서는 IdM 백업을 생성하고 GPG2 키를 사용하여 암호화합니다.

사전 요구 사항

절차

  • gpg 옵션을 지정하여 GPG 암호화 백업을 생성합니다.

    [root@server ~]# ipa-backup --gpg
    Preparing backup on server.example.com
    Stopping IPA services
    Backing up ipaca in EXAMPLE-COM to LDIF
    Backing up userRoot in EXAMPLE-COM to LDIF
    Backing up EXAMPLE-COM
    Backing up files
    Starting IPA service
    Encrypting /var/lib/ipa/backup/ipa-full-2020-01-13-14-38-00/ipa-full.tar
    Backed up to /var/lib/ipa/backup/ipa-full-2020-01-13-14-38-00
    The ipa-backup command was successful

검증 단계

  • 백업 디렉터리에. gpg 파일 확장자를 사용하여 암호화된 아카이브가 포함되어 있는지 확인합니다.

    [root@server ~]# ls /var/lib/ipa/backup/ipa-full-2020-01-13-14-38-00
    header  ipa-full.tar.gpg

추가 리소스

5.6. GPG2 키 생성

다음 절차에서는 IdM 백업 유틸리티와 같은 암호화 유틸리티와 함께 사용할 GPG2 키를 생성하는 방법을 설명합니다.

사전 요구 사항

  • 루트 권한이 필요합니다.

절차

  1. pinentry 유틸리티를 설치하고 구성합니다.

    [root@server ~]# dnf install pinentry
    [root@server ~]# mkdir ~/.gnupg -m 700
    [root@server ~]# echo "pinentry-program /usr/bin/pinentry-curses" >> ~/.gnupg/gpg-agent.conf
  2. 선호하는 세부 정보를 사용하여 GPG 키 쌍을 생성하는 데 사용되는 키 입력 파일을 만듭니다. 예를 들면 다음과 같습니다.

    [root@server ~]# cat >key-input <<EOF
    %echo Generating a standard key
    Key-Type: RSA
    Key-Length: 2048
    Name-Real: GPG User
    Name-Comment: first key
    Name-Email: root@example.com
    Expire-Date: 0
    %commit
    %echo Finished creating standard key
    EOF
  3. (선택 사항) 기본적으로 GPG2는 인증 키를 ~/.gnupg 파일에 저장합니다. 사용자 지정 인증 키 위치를 사용하려면 GNUPGHOME 환경 변수를 root만 액세스할 수 있는 디렉터리로 설정합니다.

    [root@server ~]# export GNUPGHOME=/root/backup
    
    [root@server ~]# mkdir -p $GNUPGHOME -m 700
  4. 입력 파일의 콘텐츠를 기반으로 새 GPG2 키를 생성합니다.

    [root@server ~]# gpg2 --batch --gen-key key-input
  5. GPG2 키를 보호하려면 암호를 입력합니다. 이 암호를 사용하여 암호 해독을 위해 개인 키에 액세스합니다.

    ┌──────────────────────────────────────────────────────┐
    │ Please enter the passphrase to                       │
    │ protect your new key                                 │
    │                                                      │
    │ Passphrase: <passphrase>                             │
    │                                                      │
    │	 <OK>                             <Cancel>     │
    └──────────────────────────────────────────────────────┘
  6. 암호를 다시 입력하여 올바른 암호를 확인합니다.

    ┌──────────────────────────────────────────────────────┐
    │ Please re-enter this passphrase                      │
    │                                                      │
    │ Passphrase: <passphrase>                             │
    │                                                      │
    │	 <OK>                             <Cancel>     │
    └──────────────────────────────────────────────────────┘
  7. 새 GPG2 키가 생성되었는지 확인합니다.

    gpg: keybox '/root/backup/pubring.kbx' created
    gpg: Generating a standard key
    gpg: /root/backup/trustdb.gpg: trustdb created
    gpg: key BF28FFA302EF4557 marked as ultimately trusted
    gpg: directory '/root/backup/openpgp-revocs.d' created
    gpg: revocation certificate stored as '/root/backup/openpgp-revocs.d/8F6FCF10C80359D5A05AED67BF28FFA302EF4557.rev'
    gpg: Finished creating standard key

검증 단계

  • 서버의 GPG 키를 나열합니다.

    [root@server ~]# gpg2 --list-secret-keys
    gpg: checking the trustdb
    gpg: marginals needed: 3  completes needed: 1  trust model: pgp
    gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
    /root/backup/pubring.kbx
    ------------------------
    sec   rsa2048 2020-01-13 [SCEA]
          8F6FCF10C80359D5A05AED67BF28FFA302EF4557
    uid           [ultimate] GPG User (first key) <root@example.com>

5.7. 추가 리소스

6장. Ansible 플레이북을 사용하여 IdM 서버 백업

ipabackup Ansible 역할을 사용하여 IdM 서버 백업을 자동화하고 서버와 Ansible 컨트롤러 간에 백업 파일을 전송할 수 있습니다.

이 섹션에서는 다음 주제를 다룹니다.

6.1. IdM 관리를 위한 Ansible 제어 노드 준비

IdM(Identity Management)을 관리하는 시스템 관리자로서 Red Hat Ansible Engine을 사용하여 작업할 때 다음을 수행하는 것이 좋습니다.

  • 홈 디렉터리에서 Ansible 플레이북 전용 하위 디렉터리(예: ~/MyPlaybooks )를 생성합니다.
  • /usr /share/doc/ansible-freeipa/* 및 /usr/share/doc /rhel-system-roles/* 디렉터리 및 하위 디렉터리에서 ~/MyPlaybooks 디렉터리에 샘플 Ansible 플레이북을 복사 및 조정합니다.
  • 인벤토리 파일을 ~/MyPlaybooks 디렉터리에 포함합니다.

이 방법을 따라 한 위치에서 모든 플레이북을 찾을 수 있으며 루트 권한을 호출하지 않고도 플레이북을 실행할 수 있습니다.

참고

관리 노드에서 root 권한만 있으면 ipaserver, ipareplica, ipa client 및 ipa backup ansible-freeipa 역할을 실행할 수 있습니다. 이러한 역할을 수행하려면 디렉토리 및 dnf 소프트웨어 패키지 관리자에 대한 권한 있는 액세스 권한이 필요합니다.

이 섹션에서는 ~/MyPlaybooks 디렉터리를 만들고 Ansible 플레이북을 저장하고 실행하는 데 사용할 수 있도록 구성하는 방법을 설명합니다.

사전 요구 사항

  • 관리형 노드인 server.idm.example .com 및 replica.idm.example.com에 IdM 서버를 설치했습니다.
  • 제어 노드에서 직접 관리형 노드인 server.idm.example.com 및 replica.idm.example.com 에 로그인할 수 있도록 DNS 및 네트워킹을 구성했습니다.
  • IdM 관리자 암호를 알고 있습니다.

절차

  1. 홈 디렉터리에서 Ansible 구성 및 플레이북의 디렉터리를 생성합니다.

    $ mkdir ~/MyPlaybooks/
  2. ~/MyPlaybooks/ 디렉터리로 변경합니다.

    $ cd ~/MyPlaybooks
  3. 다음 콘텐츠를 사용하여 ~/Myplaybooks/ansible.cfg 파일을 만듭니다.

    [defaults]
    inventory = /home/your_username/MyPlaybooks/inventory
    
    [privilege_escalation]
    become=True
  4. 다음 콘텐츠를 사용하여 ~/Myplaybooks/inventory 파일을 만듭니다.

    [eu]
    server.idm.example.com
    
    [us]
    replica.idm.example.com
    
    [ipaserver:children]
    eu
    us

    이 구성은 이러한 위치에 있는 호스트에 대한 두 개의 호스트 그룹인 euus 를 정의합니다. 또한 이 구성은 euus 그룹의 모든 호스트를 포함하는 ipaserver 호스트 그룹을 정의합니다.

  5. [선택 사항] SSH 공개 및 개인 키를 생성합니다. 테스트 환경에서 액세스를 간소화하려면 개인 키에 암호를 설정하지 마십시오.

    $ ssh-keygen
  6. SSH 공개 키를 각 관리 노드의 IdM admin 계정에 복사합니다.

    $ ssh-copy-id admin@server.idm.example.com
    $ ssh-copy-id admin@replica.idm.example.com

    이러한 명령을 입력할 때 IdM 관리자 암호를 입력해야 합니다.

추가 리소스

6.2. Ansible을 사용하여 IdM 서버 백업 생성

다음 절차에서는 Ansible 플레이북에서 ipabackup 역할을 사용하여 IdM 서버의 백업을 생성하고 IdM 서버에 저장하는 방법을 설명합니다.

사전 요구 사항

  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
    • Ansible 인벤토리 파일은 ~/MyPlaybooks/ 디렉터리에 있습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks 디렉터리에 있는 backup- server.yml 파일의 사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/backup-server.yml backup-my-server.yml
  3. 편집할 backup-my-server.yml Ansible 플레이북 파일을 엽니다.
  4. hosts 변수를 인벤토리 파일에서 호스트 그룹으로 설정하여 파일을 조정합니다. 이 예제에서는 ipaserver 호스트 그룹으로 설정합니다.

    ---
    - name: Playbook to backup IPA server
      hosts: ipaserver
      become: true
    
      roles:
      - role: ipabackup
        state: present
  5. 파일을 저장합니다.
  6. 인벤토리 파일과 플레이북 파일을 지정하여 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory backup-my-server.yml

검증 단계

  1. 백업한 IdM 서버에 로그인합니다.
  2. 백업이 /var/lib/ipa/backup 디렉터리에 있는지 확인합니다.

    [root@server ~]# ls /var/lib/ipa/backup/
    ipa-full-2021-04-30-13-12-00

추가 리소스

  • ipabackup 역할을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible-freeipa/roles/ipabackup 디렉토리의 README.md 파일. 이 파일에는 ipabackup 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/ 디렉토리.

6.3. Ansible을 사용하여 Ansible 컨트롤러에서 IdM 서버 백업 생성

다음 절차에서는 Ansible 플레이북에서 ipabackup 역할을 사용하여 IdM 서버 백업을 생성하고 Ansible 컨트롤러에서 자동으로 전송하는 방법을 설명합니다. 백업 파일 이름은 IdM 서버의 호스트 이름으로 시작됩니다.

사전 요구 사항

  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
    • Ansible 인벤토리 파일은 ~/MyPlaybooks/ 디렉터리에 있습니다.

절차

  1. 백업을 저장하려면 Ansible 컨트롤러의 홈 디렉터리에 하위 디렉터리를 생성합니다.

    $ mkdir ~/ipabackups
  2. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  3. /usr/share/doc/ansible -freeipa/playbooks 디렉터리에 있는 backup-server-to- controller.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/backup-server-to-controller.yml backup-my-server-to-my-controller.yml
  4. 편집을 위해 backup-my-server-to-my-controller.yml 파일을 엽니다.
  5. 다음 변수를 설정하여 파일을 조정합니다.

    1. hosts 변수를 인벤토리 파일의 호스트 그룹으로 설정합니다. 이 예제에서는 ipaserver 호스트 그룹으로 설정합니다.
    2. (선택 사항) IdM 서버에서 백업 사본을 유지하려면 다음 행의 주석을 제거합니다.

       # ipabackup_keep_on_server: yes
  6. 기본적으로 백업은 Ansible 컨트롤러의 현재 작업 디렉터리에 저장됩니다. 1단계에서 생성한 백업 디렉토리를 지정하려면 ipabackup_controller_path 변수를 추가하고 /home/user/ipabackups 디렉터리로 설정합니다.

    ---
    - name: Playbook to backup IPA server to controller
      hosts: ipaserver
      become: true
      vars:
        ipabackup_to_controller: yes
        # ipabackup_keep_on_server: yes
        ipabackup_controller_path: /home/user/ipabackups
    
      roles:
      - role: ipabackup
        state: present
  7. 파일을 저장합니다.
  8. 인벤토리 파일과 플레이북 파일을 지정하여 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory backup-my-server-to-my-controller.yml

검증 단계

  • 백업이 Ansible 컨트롤러의 /home/user/ipabackups 디렉터리에 있는지 확인합니다.

    [user@controller ~]$ ls /home/user/ipabackups
    server.idm.example.com_ipa-full-2021-04-30-13-12-00

추가 리소스

  • ipabackup 역할을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible-freeipa/roles/ipabackup 디렉토리의 README.md 파일. 이 파일에는 ipabackup 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/ 디렉토리.

6.4. Ansible을 사용하여 IdM 서버 백업을 Ansible 컨트롤러에 복사

다음 절차에서는 Ansible 플레이북을 사용하여 IdM 서버에서 Ansible 컨트롤러로 IdM 서버 백업을 복사하는 방법을 설명합니다.

사전 요구 사항

  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
    • Ansible 인벤토리 파일은 ~/MyPlaybooks/ 디렉터리에 있습니다.

절차

  1. 백업을 저장하려면 Ansible 컨트롤러의 홈 디렉터리에 하위 디렉터리를 생성합니다.

    $ mkdir ~/ipabackups
  2. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  3. /usr/share/doc/ansible -freeipa/playbooks 디렉터리에 있는 copy-backup-from- server.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/copy-backup-from-server.yml copy-backup-from-my-server-to-my-controller.yml
  4. 편집을 위해 copy-my-backup-from-my-server-to-my-controller.yml 파일을 엽니다.
  5. 다음 변수를 설정하여 파일을 조정합니다.

    1. hosts 변수를 인벤토리 파일의 호스트 그룹으로 설정합니다. 이 예제에서는 ipaserver 호스트 그룹으로 설정합니다.
    2. Ansible 컨트롤러에 복사하도록 ipabackup _name 변수를 IdM 서버의 ipabackup 이름으로 설정합니다.
    3. 기본적으로 백업은 Ansible 컨트롤러의 현재 작업 디렉터리에 저장됩니다. 1단계에서 생성한 디렉터리를 지정하려면 ipabackup_controller_path 변수를 추가하고 /home/user/ipabackups 디렉터리로 설정합니다.

      ---
      - name: Playbook to copy backup from IPA server
        hosts: ipaserver
        become: true
        vars:
          ipabackup_name: ipa-full-2021-04-30-13-12-00
          ipabackup_to_controller: yes
          ipabackup_controller_path: /home/user/ipabackups
      
        roles:
        - role: ipabackup
          state: present
  6. 파일을 저장합니다.
  7. 인벤토리 파일과 플레이북 파일을 지정하여 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory copy-backup-from-my-server-to-my-controller.yml
참고

모든 IdM 백업을 컨트롤러에 복사하려면 Ansible 플레이북의 ipabackup_name 변수를 모두 로 설정합니다.

  vars:
    ipabackup_name: all
    ipabackup_to_controller: yes

예를 들어 /usr/share/doc/ansible -freeipa/playbooks 디렉터리의 copy-all-backups-from- server.yml Ansible 플레이북을 참조하십시오.

검증 단계

  • 백업이 Ansible 컨트롤러의 /home/user/ipabackups 디렉터리에 있는지 확인합니다.

    [user@controller ~]$ ls /home/user/ipabackups
    server.idm.example.com_ipa-full-2021-04-30-13-12-00

추가 리소스

  • ipabackup 역할을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible-freeipa/roles/ipabackup 디렉토리의 README.md 파일. 이 파일에는 ipabackup 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/ 디렉토리.

6.5. Ansible을 사용하여 Ansible 컨트롤러에서 IdM 서버로 IdM 서버 백업 복사

다음 절차에서는 Ansible 플레이북을 사용하여 Ansible 컨트롤러에서 IdM 서버로 IdM 서버 백업을 복사하는 방법을 설명합니다.

사전 요구 사항

  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
    • Ansible 인벤토리 파일은 ~/MyPlaybooks/ 디렉터리에 있습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks 디렉터리에 있는 copy-backup-from- controller.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/copy-backup-from-controller.yml copy-backup-from-my-controller-to-my-server.yml
  3. 편집을 위해 copy-my-backup-from-my-controller-to-my-server.yml 파일을 엽니다.
  4. 다음 변수를 설정하여 파일을 조정합니다.

    1. hosts 변수를 인벤토리 파일의 호스트 그룹으로 설정합니다. 이 예제에서는 ipaserver 호스트 그룹으로 설정합니다.
    2. IdM 서버에 복사하도록 ipabackup_name 변수를 Ansible 컨트롤러의 ipabackup 이름으로 설정합니다.

      ---
      - name: Playbook to copy a backup from controller to the IPA server
        hosts: ipaserver
        become: true
      
        vars:
          ipabackup_name: server.idm.example.com_ipa-full-2021-04-30-13-12-00
          ipabackup_from_controller: yes
      
        roles:
        - role: ipabackup
          state: copied
  5. 파일을 저장합니다.
  6. 인벤토리 파일과 플레이북 파일을 지정하여 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory copy-backup-from-my-controller-to-my-server.yml

추가 리소스

  • ipabackup 역할을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible-freeipa/roles/ipabackup 디렉토리의 README.md 파일. 이 파일에는 ipabackup 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/ 디렉토리.

6.6. Ansible을 사용하여 IdM 서버에서 백업 제거

다음 절차에서는 Ansible 플레이북을 사용하여 IdM 서버에서 백업을 제거하는 방법을 설명합니다.

사전 요구 사항

  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
    • Ansible 인벤토리 파일은 ~/MyPlaybooks/ 디렉터리에 있습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks 디렉터리에 있는 remove-backup-from- server.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/remove-backup-from-server.yml remove-backup-from-my-server.yml
  3. 편집을 위해 remove-backup-from-my-server.yml 파일을 엽니다.
  4. 다음 변수를 설정하여 파일을 조정합니다.

    1. hosts 변수를 인벤토리 파일의 호스트 그룹으로 설정합니다. 이 예제에서는 ipaserver 호스트 그룹으로 설정합니다.
    2. IdM 서버에서 제거하도록 ipabackup_name 변수를 ipabackup 의 이름으로 설정합니다.

      ---
      - name: Playbook to remove backup from IPA server
        hosts: ipaserver
        become: true
      
        vars:
          ipabackup_name: ipa-full-2021-04-30-13-12-00
      
        roles:
        - role: ipabackup
          state: absent
  5. 파일을 저장합니다.
  6. 인벤토리 파일과 플레이북 파일을 지정하여 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory remove-backup-from-my-server.yml
참고

IdM 서버에서 모든 IdM 백업을 제거하려면 Ansible 플레이북의 ipabackup_name 변수를 모두 로 설정합니다.

  vars:
    ipabackup_name: all

예를 들어 /usr/share/doc/ansible -freeipa/playbooks 디렉터리의 remove-all-backups-from- server.yml Ansible 플레이북을 참조하십시오.

추가 리소스

  • ipabackup 역할을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible-freeipa/roles/ipabackup 디렉토리의 README.md 파일. 이 파일에는 ipabackup 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/ 디렉토리.