22.2.3.12. OpenShift Container Platform에 대한 배포 호스트 구성
다음 하위 섹션에서는 배포 인스턴스를 올바르게 구성하는 데 필요한 모든 단계를 설명합니다.
Deployment Host를 Jumphost로 사용하도록 ~/.ssh/config 구성
OpenShift Container Platform 환경에 쉽게 연결하려면 다음 단계를 따르십시오.
개인 키가 <keypair-name>.pem인 OpenStack director 노드 또는 로컬 워크스테이션에서 다음을 수행합니다.
$ exec ssh-agent bash $ ssh-add /path/to/<keypair-name>.pem Identity added: /path/to/<keypair-name>.pem (/path/to/<keypair-name>.pem)
~/.ssh/config
파일에 추가합니다.
Host deployment HostName <deployment_fqdn_hostname OR IP address> User cloud-user IdentityFile /path/to/<keypair-name>.pem ForwardAgent yes
인증 에이전트 연결 전달을 활성화하는 -A
옵션을 사용하여 배포 호스트에 SSH 로
연결합니다.
권한이 ~/.ssh/config 파일의 소유자에 대해서만 읽기 전용인지 확인합니다.
$ chmod 600 ~/.ssh/config
$ ssh -A cloud-user@deployment
배포 호스트에 로그인한 후 SSH_AUTH_SOCK
를 확인하여 ssh 에이전트 전달이 작동하는지 확인합니다.
$ echo "$SSH_AUTH_SOCK" /tmp/ssh-NDFDQD02qB/agent.1387
서브스크립션 관리자 및 OpenShift Container Platform 리포지토리 활성화
배포 인스턴스 내에서 Red Hat Subscription Manager에 등록합니다. 이 작업은 인증 정보를 사용하여 수행할 수 있습니다.
$ sudo subscription-manager register --username <user> --password '<password>'
또는 활성화 키를 사용할 수 있습니다.
$ sudo subscription-manager register --org="<org_id>" --activationkey=<keyname>
등록되고 나면 다음과 같이 다음 리포지토리를 활성화합니다.
$ sudo subscription-manager repos \ --enable="rhel-7-server-rpms" \ --enable="rhel-7-server-extras-rpms" \ --enable="rhel-7-server-ose-3.11-rpms" \ --enable="rhel-7-server-ansible-2.6-rpms" \ --enable="rhel-7-server-openstack-13-rpms" \ --enable="rhel-7-server-openstack-13-tools-rpms"
활성화할 적절한 OpenShift Container Platform 리포지토리 및 Ansible 버전을 확인하려면 Set Up Repositories(리포지토리 설정)를 참조하십시오. 위의 파일은 샘플일 뿐입니다.
배포 호스트에 필요한 패키지
다음 패키지를 배포 호스트에 설치해야 합니다.
다음 패키지를 설치합니다.
-
openshift-ansible
-
python-openstackclient
-
python2-heatclient
-
python2-octaviaclient
-
python2-shade
-
python-dns
-
Git
-
Ansible
$ sudo yum -y install openshift-ansible python-openstackclient python2-heatclient python2-octaviaclient python2-shade python-dns git ansible
Ansible 구성
Ansible
은 배포 인스턴스에 설치되어 마스터 및 노드 인스턴스에서 OpenShift Container Platform 환경의 등록, 설치 및 배포를 수행합니다.
플레이북을 실행하기 전에 배포하려는 환경을 반영하도록 ansible.cfg 파일을 생성하는 것이 중요합니다.
$ cat ~/ansible.cfg
[defaults]
forks = 20
host_key_checking = False
remote_user = openshift
gathering = smart
fact_caching = jsonfile
fact_caching_connection = $HOME/ansible/facts
fact_caching_timeout = 600
log_path = $HOME/ansible.log
nocows = 1
callback_whitelist = profile_tasks
inventory = /usr/share/ansible/openshift-ansible/playbooks/openstack/inventory.py,/home/cloud-user/inventory
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=600s -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=false
control_path = %(directory)s/%%h-%%r
pipelining = True
timeout = 10
[persistent_connection]
connect_timeout = 30
connect_retries = 30
connect_interval = 1
다음 매개 변수 값은 ansible.cfg 파일에 중요합니다.
-
remote_user
는 사용자 openshift 로 유지되어야 합니다. - inventory 매개 변수는 두 인벤토리 사이에 공백이 없도록 합니다.
예: inventory = path/to/inventory1,path/to/inventory2
위의 코드 블록은 파일의 기본값을 덮어쓸 수 있습니다. 배포 인스턴스에 복사된 키 쌍으로 <keypair-name>을 채워야 합니다.
인벤토리 폴더는 22.3.1절. “프로비저닝을 위한 인벤토리 준비” 에 생성됩니다.
OpenShift Authentication
OpenShift Container Platform은 다양한 인증 플랫폼을 사용할 수 있는 기능을 제공합니다. 인증 옵션 목록은 인증 및 사용자 에이전트 구성에서 사용할 수 있습니다.
기본 ID 프로바이더를 구성하는 것은 모두 거부되므로 중요합니다.