22.2.3.12. OpenShift Container Platform のデプロイメントホスト設定
以下のサブセクションでは、デプロイメントインスタンスを適切に設定するために必要なすべての手順について説明しています。
デプロイメントホストを Jumphost として使用できるように ~/.ssh/config を設定する
OpenShift Container Platform 環境に簡単に接続するには、以下の手順に従ってください。
OpenStack director ノードまたはローカルワークステーションで プライベートキー <keypair-name>.pem を使用して以下を実行します。
$ 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
Subscription Manager および 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 バージョンを確認します。上記のファイルはサンプルであることに注意してください。
デプロイメントホストで必要なパッケージ
以下のパッケージがデプロイメントホストでインストールされる必要があります。
以下のパッケージをインストールします。
-
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 環境のデプロイメントを実行するためにデプロイメントインスタンスにインストールされます。
Playbook を実行する前に、デプロイする環境を反映させるために 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 のままにする必要があります。 - インベントリーパラメーターでは、2 つのインベントリー間にスペースが入っていないことを確認します。
例: inventory = path/to/inventory1,path/to/inventory2
上記のコードブロックはファイルのデフォルト値を上書きする可能性があります。<keypair-name> に、デプロイメントインスタンスにコピーしたキーペアを設定するようにしてください。
inventory フォルダーは 「プロビジョニング用のインベントリーの準備」 に作成されます。
OpenShift 認証
OpenShift Container Platform は多数の異なる認証プラットフォームを使用する機能を提供します。認証オプションの一覧については、認証およびユーザーエージェントの設定 を参照してください。
デフォルトのアイデンティティープロバイダーを設定することは、デフォルト値が Deny All に設定されているので重要になります。