Contrail コマンドで使用される contrail-ansible-deployer について
このトピックでは、Contrail コマンド ツールで使用されるcontrail-ansible-deployer
の概要について説明します。マイクロサービス アーキテクチャを使用して Contrail Networkingをインストールするために使用します。
Contrailマイクロサービスについては、「 Contrailマイクロサービスアーキテクチャについて」を参照してください。Contrail Command デプロイヤーを使用して Contrail をインストールする手順については、「 Contrail Command and instances.yml を使用した Contrail クラスターのインストール」を参照してください。
Contrail-ansible-deployerとは何ですか?
contrail-ansible-deployer
は、マイクロサービス アーキテクチャで Contrail Networkingを導入するために設計されたAnsibleプレイブックのセットです。
contrail-ansible-deployer
には、次の 3 つのプレイブックが含まれています。
provision_instances.yml
このプレイブックでは、コンテナーをホストするためのオペレーティング システム インスタンスをプロビジョニングします。以下のインフラストラクチャプロバイダーをサポートしています。
kvm.
gce.
aws.
configure_instances.yml
このプレイブックでは、プロビジョニングされたインスタンスを構成します。プレイブックでは、ソフトウェアをインストールし、必要な前提条件の標準を満たすようにオペレーティング システムを構成します。これはすべてのプロバイダーに適用されます。
install_contrail.yml
このプレイブックでは、Contrailコンテナの取得、設定、起動について説明します。
Contrailコマンドを使用したインストールの準備
このセクションは、 contrail-command-deployer
を使用して Contrail Networking をインストールする前にシステムを準備するのに役立ちます。
前提 条件
contrail-command-deployer
を実行する前に、システムが次の要件を満たしていることを確認してください。
ご使用の環境内のシステムで、互換性のあるバージョンの CentOS、Ansible、Docker、およびその他のソフトウェア・コンポーネントを実行していることを確認します。 「Contrail Networkingがサポートするプラットフォームのリスト」を参照してください。
名前解決は、DNS またはホスト ファイルを使用して、クラスター ノードの長いホスト名と短いホスト名に対して操作できます。
高可用性 (HA) の場合は、クラスター ノード間で時刻が同期していることを確認します。
時刻は、ネットワーク タイム プロトコル (ntp) を使用してクラスター ノード間で同期する必要があります。
サポートされているプロバイダー
プレイブックでは、次のプロバイダーへの Contrail Networking のインストールがサポートされています。
BMS:ベアメタルサーバー。
kvm:カーネルベースの仮想マシン(KVM)でホストされる仮想マシン。
gce - Google コンピューティング エンジン(GCE)でホストされる仮想マシン。
aws:アマゾン ウェブ サービス(AWS)がホストする仮想マシン。
環境に合わせて instances.yaml ファイルを設定します
3 つのプレイブックすべての構成は、 config/instances.yaml
1 つのファイルに含まれています。
構成には、次のような複数のメイン セクションがあります。
このセクションでは、 instances.yaml
ファイルの主なセクションについて説明します。ご使用のシステムに適したセクションを使用して、ご使用の環境に固有のパラメーターをそれぞれ構成します。
プロバイダーの構成
このセクションでは、プロバイダー固有の設定を構成する provider_config
。
KVM プロバイダーの例
この例は、カーネルベースの仮想マシン (kvm) でホストされている環境にいる場合に使用します。
この出力では、パスワードは説明のみを目的として提供されています。環境内の組織のセキュリティ ガイドラインに従って一意のパスワードを使用することをお勧めします。
provider_config: # the provider section contains all provider relevant configuration kvm: # Mandatory. image: CentOS-7-x86_64-GenericCloud-1710.qcow2.xz # Mandatory for provision play. Image to be deployed. image_url: https://cloud.centos.org/centos/7/images/ # Mandatory for provision play. Path/url to image. ssh_pwd: contrail123 # Mandatory for provision/configuration/install play. Ssh password set/used. ssh_user: centos # Mandatory for provision/configuration/install play. Ssh user set/used. ssh_public_key: /home/centos/.ssh/id_rsa.pub # Optional for provision/configuration/install play. ssh_private_key: /home/centos/.ssh/id_rsa # Optional for provision/configuration/install play. vcpu: 12 # Mandatory for provision play. vram: 64000 # Mandatory for provision play. vdisk: 100G # Mandatory for provision play. subnet_prefix: ip-address # Mandatory for provision play. subnet_netmask: subnet-mask # Mandatory for provision play. gateway: gateway-ip-address # Mandatory for provision play. nameserver: dns-ip-address # Mandatory for provision play. ntpserver: ntp-server-ip-address # Mandatory for provision/configuration play. domainsuffix: local # Mandatory for provision play.
BMS プロバイダーの例
この例は、ベア メタル サーバ(bms)環境の場合に使用します。
この出力では、パスワードは説明のみを目的として提供されています。環境内の組織のセキュリティ ガイドラインに従って一意のパスワードを使用することをお勧めします。
provider_config: bms: # Mandatory. ssh_pwd: contrail123 # Optional. Not needed if ssh keys are used. ssh_user: centos # Mandatory. ssh_public_key: /home/centos/.ssh/id_rsa.pub # Optional. Not needed if ssh password is used. ssh_private_key: /home/centos/.ssh/id_rsa # Optional. Not needed if ssh password is used. ntpserver: ntp-server-ip-address # Optional. Needed if ntp server should be configured. domainsuffix: local # Optional. Needed if configuration play should configure /etc/hosts
Contrailのインストールを続行する前に、SSH ホストIDキー を受け入れるか、Deployerノードにインストールする必要があります。
これを行うには、次の手順を実行します。
-
デプロイヤー ユーザーの資格情報を使用してデプロイヤー VM から各ターゲット マシンに SSH 接続し、[ はい ] をクリックして SSH ホスト キーを受け入れます。
又は
-
環境変数の ANSIBLE_HOST_KEY_CHECKING 値を False に設定します。
ANSIBLE_HOST_KEY_CHECKING=false
又は
-
[defaults] host_key_checking値を ansible.cfg ファイルで False に設定します。
[defaults] host_key_checking=false
AWS プロバイダーの例
この例は、アマゾン ウェブ サービス (AWS) 環境の場合に使用します。
provider_config: aws: # Mandatory. ec2_access_key: THIS_IS_YOUR_ACCESS_KEY # Mandatory. ec2_secret_key: THIS_IS_YOUR_SECRET_KEY # Mandatory. ssh_public_key: /home/centos/.ssh/id_rsa.pub # Optional. ssh_private_key: /home/centos/.ssh/id_rsa # Optional. ssh_user: centos # Mandatory. instance_type: t2.xlarge # Mandatory. image: ami-337be65c # Mandatory. region: eu-central-1 # Mandatory. security_group: SECURITY_GROUP_ID # Mandatory. vpc_subnet_id: VPC_SUBNET_ID # Mandatory. assign_public_ip: yes # Mandatory. volume_size: 50 # Mandatory. key_pair: KEYPAIR_NAME # Mandatory.
GCE プロバイダの例
この例は、Google Cloud 環境を使用している場合に使用します。
provider_config: gce: # Mandatory. service_account_email: # Mandatory. GCE service account email address. credentials_file: # Mandatory. Path to GCE account json file. project_id: # Mandatory. GCE project name. ssh_user: # Mandatory. Ssh user for GCE instances. ssh_pwd: # Optional. Ssh password used by ssh user, not needed when public is used ssh_private_key: # Optional. Path to private SSH key, used by by ssh user, not needed when ssh-agent loaded private key machine_type: n1-standard-4 # Mandatory. Default is too small image: centos-7 # Mandatory. For provisioning and configuration only centos-7 is currently supported. network: microservice-vn # Optional. Defaults to default subnetwork: microservice-sn # Optional. Defaults to default zone: us-west1-aA # Optional. Defaults to ? disk_size: 50 # Mandatory. Default is too small
グローバルサービス構成
このセクションでは、グローバル サービス パラメータを設定します。すべてのパラメーターは省略可能です。
global_configuration: CONTAINER_REGISTRY: hub.juniper.net/contrail REGISTRY_PRIVATE_INSECURE: True CONTAINER_REGISTRY_USERNAME: YourRegistryUser CONTAINER_REGISTRY_PASSWORD: YourRegistryPassword
Contrailサービスの設定
このセクションでは、グローバルな Contrail サービス パラメーターを設定します。すべてのパラメーターは省略可能です。
contrail_configuration: # Contrail service configuration section CONTRAIL_VERSION: latest UPGRADE_KERNEL: true
contrail_configuration.md で使用できるパラメーターの完全なリストについては、「 Ansible Deployer の Contrail 設定パラメーター」を参照してください。
Kollaサービスの構成
OpenStack Kolla がデプロイされている場合、このセクションは Kolla のパラメーターを定義します。
kolla_config:
インスタンスの構成
インスタンスは、コンテナが起動されるオペレーティングシステムです。インスタンス構成には、プロバイダー固有のパラメーターがいくつかあります。インスタンス構成は、どのロールがどのインスタンスにインストールされているかを指定します。さらに、インスタンス全体およびロール固有の Contrail および Kolla 設定を指定して、Contrail および Kolla のグローバル構成設定のパラメーターを上書きすることができます。
KVM Contrail Planeインスタンス
次の例は、KVM ベースのインスタンスのみで、Contrail コントロール プレーン コンテナをインストールしています。
instances: kvm1: provider: kvm roles: config_database: config: control: analytics_database: analytics: webui: kubemanager: k8s_master:
GCE デフォルトのオールインワンインスタンス
次の例は、非常に単純なオールインワン GCE インスタンスです。既定の構成を使用して、すべての Contrail ロールと Kubernetes マスターおよびノードがインストールされます。
instances: gce1: # Mandatory. Instance name provider: gce # Mandatory. Instance runs on GCE
AWS デフォルトの 3 ノード HA インスタンス
次の例では、3 つの AWS EC2 インスタンスを使用して、すべてのロールとデフォルトパラメータを含む 3 ノードの高可用性セットアップをデプロイします。
instances: aws1: provider: aws aws2: provider: aws aws3: provider: aws
その他の例
インスタンスのその他の設定例については、以下を参照してください。
Contrailシステムのインストール
Contrailシステムのフルインストールを実行するには、 Contrailコマンドとinstances.yamlを使用したContrailクラスターのインストール手順を参照してください。