Ansible은 선언적 언어를 사용하여 원하는 시스템 상태를 설명하고 해당 상태를 달성하는 데 필요한 작업을 자동으로 처리합니다.
Ansible은 SSH를 기본 연결 방법으로 사용하여 대상 머신에 연결합니다. SSH는 Ansible 제어 노드와 대상 호스트 간의 안전하고 암호화된 통신 채널을 제공합니다.
일반적으로 대상 호스트에 대한 SSH 키 기반 인증을 구성하는 가장 일반적인 방법은 ssh-copy-id 명령입니다. 이 명령은 제어 노드의 공개 키를 대상 호스트의 'authorized_keys' 파일에 복사합니다.
그러나 처음으로 시스템을 구성하는 경우 플레이북에서 이를 수행하려면 Ansible이 필요할 수 있습니다. 이것이 Ansible 커뮤니티가 구출하는 곳입니다.
Ansible 커뮤니티에서는 비밀번호 없는 SSH 인증을 위해 시스템에 권한을 부여할 수 있는 ssh_id_copy 역할에 액세스할 수 있습니다.
이 역할은 원격 시스템에서 Ansible 인벤토리 파일을 생성할 수 있는 원격 시스템의 SSH 키 설정을 처리합니다. 그런 다음 원격 시스템에 대해 Ansible 플레이북을 빠르게 호출할 수 있습니다.
Ansible Ssh_Copy_Id 역할
역할에는 Ansible이 원격 호스트에서 SSH 키를 구성할 수 있도록 하는 변수가 있습니다. 이러한 변수에는 다음이 포함됩니다.
호스트 이름 – 연결할 원격 시스템(FQDN 또는 IP)을 정의합니다.
사용자 이름 – 원격 시스템에 접속하기 위한 사용자 이름을 지정합니다.
비밀번호 – 원격 시스템에 접속하기 위한 사용자 이름의 비밀번호를 정의합니다.
ssh_public_key – 원격 호스트에 설정할 공개키 파일의 절대 경로를 정의합니다.
포트 – SSH 포트를 정의합니다.
Ssh_Copy_Id 역할 설치
주의: 우리는 커뮤니티 중심 역할과 모듈의 유효성과 보안을 제공할 수 없습니다. 프로덕션 및 실제 시스템에서 사용하기 전에 역할/모듈의 작동을 감사하고 확인하십시오. 이 게시물에 설명된 단계를 수행할 때 보안이 보장되지 않습니다.
언급한 대로 ssh_copy_id는 Ryan이 제공하는 커뮤니티 제공 역할입니다. 저장소에 대한 링크는 다음과 같이 제공됩니다.
https://github.com/ryankwilliams/ansible-ssh-copy-id
사용하기 전에 다음 명령을 실행하여 설치되었는지 확인해야 합니다.
$ 앤서블 갤럭시 설치하다 rywillia.ssh-복사 ID
사용 예
일단 설치되면 다음과 같이 플레이북에서 역할을 사용할 수 있습니다.
---- 이름 : 원격 시스템에서 비밀번호 없는 SSH 인증 구성
호스트 : 로컬호스트
~이 되다 : 예
역할 :
- 역할 : 라이언크윌리엄스.ssh_copy_id
누구의 :
호스트 이름 : 172.168.112.23
사용자 이름 : 우분투
비밀번호 : 비밀번호
ssh_public_key : /home/debian12/.ssh/id_rsa.pub
SSH_포트 : 22
이전 예제 플레이북에서는 역할을 사용하여 원격 시스템에 정의된 사용자인 비밀번호 없는 SSH 인증을 설정하는 방법을 보여줍니다.
결론
이 입문 튜토리얼에서는 커뮤니티에서 제공하는 역할 및 모듈을 활용하여 Ansible 플레이북을 사용하여 원격 호스트에서 비밀번호 없는 SSH 인증을 구성하는 방법을 배웠습니다.