7.4. Ansible을 사용하여 구성 변경
이 섹션에서는 Ansible에 대해 익숙한 것으로 가정합니다.
사용 가능한 호스트 구성 옵션의 일부만 Ansible에 노출됩니다. OpenShift Container Platform을 설치한 후 Ansible은 대체된 일부 값을 사용하여 인벤토리 파일을 생성합니다. 이 인벤토리 파일을 수정하고 Ansible 설치 프로그램 플레이북을 다시 실행하는 방법은 OpenShift Container Platform 클러스터를 사용자 지정하는 방법입니다.
OpenShift Container Platform은 Ansible 플레이북 및 인벤토리 파일을 사용하여 클러스터 설치를 위해 Ansible 사용을 지원하지만 Puppet,Chef 또는 Salt 등의 다른 관리 툴도 사용할 수 있습니다.
사용 사례: HTPasswd 인증을 사용하도록 클러스터 구성
- 이 사용 사례에서는 플레이북에서 참조하는 모든 노드에 SSH 키를 이미 설정했다고 가정합니다.
htpasswd
유틸리티는httpd-tools
패키지에 있습니다.# yum install httpd-tools
Ansible 인벤토리를 수정하고 구성을 변경하려면 다음을 수행합니다.
- ./hosts 인벤토리 파일을 엽니다.
파일의
[OSEv3:vars]
섹션에 다음 새 변수를 추가합니다.# htpasswd auth openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}] # Defining htpasswd users #openshift_master_htpasswd_users={'<name>': '<hashed-password>', '<name>': '<hashed-password>'} # or #openshift_master_htpasswd_file=/etc/origin/master/htpasswd
HTPasswd 인증의 경우
openshift_master_identity_providers
변수는 인증 유형을 활성화합니다. HTPasswd를 사용하는 세 가지 인증 옵션을 구성할 수 있습니다.-
/etc/origin/
만 지정합니다.master/htpasswd가 이미 구성되어 있으며 호스트에 있는 경우 openshift_master
_identity_providers -
로컬 htpasswd 파일을 호스트에 복사하려면
openshift_master_identity
을 둘 다 지정합니다._providers
및 openshift_master_htpasswd_file -
openshift_master_identity_providers
및openshift_master_htpasswd_users
를 둘 다 지정하여 호스트에서 새 htpasswd 파일을 생성합니다.
OpenShift Container Platform에는 HTPasswd 인증을 구성하는 데 해시된 암호가 필요하므로 다음 섹션에 표시된 대로
htpasswd
명령을 사용하여 사용자의 해시된 암호를 생성하거나 사용자와 연결된 해시된 암호를 사용하여 플랫 파일을 생성할 수 있습니다.다음 예제에서는 인증 방법을 기본에서
모든 설정을 거부하고
, 지정된 파일을사용하여
jsmith
및bloblaw
사용자에 대한 사용자 ID 및 암호를 생성합니다.# htpasswd auth openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}] # Defining htpasswd users openshift_master_htpasswd_users={'jsmith': '$apr1$wIwXkFLI$bAygtKGmPOqaJftB', 'bloblaw': '7IRJ$2ODmeLoxf4I6sUEKfiA$2aDJqLJe'} # or #openshift_master_htpasswd_file=/etc/origin/master/htpasswd
-
이러한 수정 사항을 적용하기 위해 ansible 플레이북을 다시 실행합니다.
$ ansible-playbook -b -i ./hosts ~/src/openshift-ansible/playbooks/deploy_cluster.yml
플레이북은 구성을 업데이트하고 OpenShift Container Platform 마스터 서비스를 다시 시작하여 변경 사항을 적용합니다.
이제 Ansible을 사용하여 마스터 및 노드 구성 파일을 수정했지만 간단한 사용 사례일 뿐입니다. 여기에서 Ansible에 노출되는 마스터 및 노드 구성 옵션을 확인하고 고유한 Ansible 인벤토리를 사용자 지정할 수 있습니다.
7.4.1. htpasswd
명령 사용
HTPasswd 인증을 사용하도록 OpenShift Container Platform 클러스터를 구성하려면 인벤토리 파일에 포함하려면 해시된 암호가 있는 사용자가 하나 이상 필요합니다.
다음을 수행할 수 있습니다.
- 사용자 이름과 암호를 생성하여 ./hosts 인벤토리 파일에 직접 추가합니다.
- 플랫 파일을 만들어 자격 증명을 ./hosts 인벤토리 파일에 전달합니다.
사용자 및 해시된 암호를 생성하려면 다음을 수행합니다.
다음 명령을 실행하여 지정된 사용자를 추가합니다.
$ htpasswd -n <user_name>
참고명령줄에 암호를 제공하기 위해
-b
옵션을 포함할 수 있습니다.$ htpasswd -nb <user_name> <password>
사용자에 대해 일반 텍스트 암호를 입력하고 확인합니다.
예를 들면 다음과 같습니다.
$ htpasswd -n myuser New password: Re-type new password: myuser:$apr1$vdW.cI3j$WSKIOzUPs6Q
이 명령에서는 해시된 버전의 암호를 생성합니다.
그런 다음 HTPasswd 인증을 구성할 때 해시된 암호를 사용할 수 있습니다. 해시된 암호는 :
뒤에 있는 문자열입니다. 위의 예에서 다음을 입력합니다.
openshift_master_htpasswd_users={'myuser': '$apr1$wIwXkFLI$bAygtISk2eKGmqaJftB'}
사용자 이름과 해시된 암호로 플랫 파일을 생성하려면 다음을 수행합니다.
다음 명령을 실행합니다.
$ htpasswd -c /etc/origin/master/htpasswd <user_name>
참고명령줄에 암호를 제공하기 위해
-b
옵션을 포함할 수 있습니다.$ htpasswd -c -b <user_name> <password>
사용자에 대해 일반 텍스트 암호를 입력하고 확인합니다.
예를 들면 다음과 같습니다.
htpasswd -c /etc/origin/master/htpasswd user1 New password: Re-type new password: Adding password for user user1
명령은 사용자 이름과 해시된 사용자 암호의 버전을 포함하는 파일을 생성합니다.
그런 다음 HTPasswd 인증을 구성할 때 암호 파일을 사용할 수 있습니다.
htpasswd
명령에 대한 자세한 내용은 HTPasswd Identity Provider 를 참조하십시오.