1.4. 관리형 노드 준비

Ansible은 관리 호스트에서 에이전트를 사용하지 않습니다. 유일한 요구 사항은 RHEL에 기본적으로 설치되는 Python 및 관리 호스트에 대한 SSH 액세스입니다.

그러나 root 사용자로 직접 SSH 액세스는 보안 위험이 될 수 있습니다. 따라서 관리 노드를 준비할 때 이 노드에 로컬 사용자를 생성하고 sudo 정책을 구성합니다. 그런 다음 제어 노드에서 Ansible은 이 계정을 사용하여 관리 노드에 로그인하고, root 와 같은 다른 사용자로 플레이북을 실행할 수 있습니다.

사전 요구 사항

  • 제어 노드를 준비합니다.

절차

  1. 사용자를 생성합니다.

    [root@managed-node-01]# useradd ansible

    나중에 제어 노드는 이 사용자를 사용하여 이 호스트에 대한 SSH 연결을 설정합니다.

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

    [root@managed-node-01]# passwd ansible
    Changing password for user ansible.
    New password: password
    Retype new password: password
    passwd: all authentication tokens updated successfully.

    Ansible에서 sudo 를 사용하여 작업을 root 사용자로 수행할 때 이 암호를 입력해야 합니다.

  3. 관리 노드에 ansible 사용자의 SSH 공개 키를 설치합니다.

    1. 제어 노드에 ansible 사용자로 로그인하고 SSH 공개 키를 관리 노드에 복사합니다.

      [ansible@control-node]$ ssh-copy-id managed-node-01.example.com
      /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
      The authenticity of host 'managed-node-01.example.com (192.0.2.100)' can't be established.
      ECDSA key fingerprint is SHA256:9bZ33GJNODK3zbNhybokN/6Mq7hu3vpBXDrCxe7NAvo.
      Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
      /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
      /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
      ansible@managed-node-01.example.com's password: password
      
      Number of key(s) added: 1
      
      Now try logging into the machine, with:   "ssh 'managed-node-01.example.com'"
      and check to make sure that only the key(s) you wanted were added.
    2. 제어 노드에서 원격으로 명령을 실행하여 SSH 연결을 확인합니다.

      [ansible@control-node]$ ssh managed-node-01.example.com whoami
      ansible
  4. ansible 사용자에 대한 sudo 구성을 생성합니다.

    1. visudo 명령을 사용하여 /etc/sudoers.d/ansible 파일을 생성하고 편집합니다.

      [root@managed-node-01]# visudo /etc/sudoers.d/ansible

      일반 편집기에서 visudo 를 사용하면 이 유틸리티에서 기본 온전성 검사를 제공하고 파일을 설치하기 전에 구문 분석 오류를 점검할 수 있습니다.

    2. 요구 사항을 충족하는 /etc/ sudoers.d/ansible 파일에서 sudoers 정책을 구성합니다. 예를 들면 다음과 같습니다.

      • ansible 사용자 암호를 입력한 후 이 호스트의 모든 사용자 및 그룹으로 모든 명령을 실행할 수 있는 권한을 ansible 사용자에게 부여하려면 다음을 사용합니다.

        ansible ALL=(ALL) ALL
      • ansible 사용자 암호를 입력하지 않고 이 호스트의 모든 사용자 및 그룹으로 모든 명령을 실행할 수 있는 권한을 ansible 사용자에게 부여하려면 다음을 사용합니다.

        ansible ALL=(ALL) NOPASSWD: ALL

    또는 보안 요구 사항과 일치하는 더 세분화된 정책을 구성합니다. sudoers 정책에 대한 자세한 내용은 sudoers(5) 매뉴얼 페이지를 참조하십시오.

추가 리소스