Contrail Command에서 사용되는 contrail-ansible-deployer 이해
이 주제에서는 Contrail Command 툴의 contrail-ansible-deployer
사용에 대한 개요를 제공합니다. 이는 마이크로서비스 아키텍처로 Contrail Networking을 설치하는 데 사용됩니다.
Contrail 마이크로서비스에 대한 이해는 Contrail 마이크로서비스 아키텍처 이해를 참조하십시오. Contrail Command 배포자를 사용하여 Contrail을 설치하는 방법에 대한 단계별 절차는 Contrail Command 및 instances.yml을 사용하여 Contrail Cluster 설치를 참조하십시오.
contrail-ansible-deployer란 무엇입니까?
contrail-ansible-deployer
은 마이크로서비스 아키텍처와 함께 Contrail Networking을 구축하도록 설계된 Ansible 플레이북 세트입니다.
여기에는 세 가지 연극이 contrail-ansible-deployer
포함되어 있습니다.
플레이북/provision_instances.yml
이 플레이는 컨테이너를 호스팅하기 위한 운영 체제 인스턴스를 프로비전합니다. 다음과 같은 인프라 공급자를 지원합니다.
Kvm.
Gce.
Aws.
플레이북/configure_instances.yml
이 플레이는 프로비저닝된 인스턴스를 구성합니다. 플레이북은 소프트웨어를 설치하고 필수 전제 조건 표준을 충족하도록 운영 체제를 구성합니다. 이는 모든 공급자에게 적용됩니다.
플레이북/install_contrail.yml
이 플레이는 Contrail 컨테이너를 끌어오고, 구성하고, 시작합니다.
Contrail Command를 사용한 설치 준비
이 섹션은 을 사용하여 contrail-command-deployer
Contrail Networking을 설치하기 전에 시스템을 준비하는 데 도움이 됩니다.
필수 구성 요소
실행하기 contrail-command-deployer
전에 시스템이 다음 요구 사항을 충족하는지 확인하십시오.
CentOS 7.6—Linux 커널 버전 3.10.0-957.12.1
앤서블 2.4.2.0.
이름 확인은 DNS 또는 호스트 파일을 통해 클러스터 노드의 긴 호스트 이름과 짧은 호스트 이름에 대해 작동합니다.
Docker 엔진(테스트된 버전은 18.06.0-ce).
docker-compose가 설치되었습니다(테스트 버전은 1.17.0).
docker-compose Python 라이브러리(테스트된 버전은 1.9.0).
Kubernetes(k8s)를 사용하는 경우 테스트된 버전은 1.12입니다.
고가용성(HA)의 경우 클러스터 노드 간에 시간이 동기화되어야 합니다.
시간은 ntp(Network Time Protocol)를 사용하여 클러스터 노드 간에 동기화되어야 합니다.
지원되는 공급자
플레이북은 다음 프로바이더에 Contrail Networking을 설치할 수 있도록 지원합니다.
BMS—베어메탈 서버.
KVM - 커널 기반 가상 머신(KVM) 호스팅 가상 머신.
gce: GCE(Google Compute Engine)에서 호스팅되는 가상 머신입니다.
aws - Amazon Web Services(AWS) 호스팅 가상 머신.
사용자 환경에 대한 yaml 파일 구성
세 연극 모두에 대한 구성은 단일 파일 에 포함되어 있습니다 config/instances.yaml
.
구성에는 다음을 비롯한 여러 주요 섹션이 있습니다.
이 섹션에서는 파일의 config/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 키를 수락하거나 배포자 노드에 설치해야 합니다.
이렇게 하려면 다음을 수행합니다.
배포자 사용자 자격 증명을 사용하여 배포자 VM에서 각 대상 시스템에 대한 SSH 연결을 설정하고 예를 클릭하여 SSH 호스트 키를 수락합니다.
또는
환경 변수 ANSIBLE_HOST_KEY_CHECKING 값을 로 False설정합니다.
ANSIBLE_HOST_KEY_CHECKING=false
또는
ansible.cfg 파일에서 값을 로 False 설정합니다[defaults] host_key_checking.
[defaults] host_key_checking=false
AWS 공급자 예시
AWS(Amazon Web Services) 환경에 있는 경우 이 예제를 사용합니다.
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 Services 구성
이 섹션에서는 글로벌 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 플레인 인스턴스
다음 예제는 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 System 설치
Contrail 시스템의 전체 설치를 수행하려면 의 설치 지침을 참조하십시오: Contrail Command and instances.yml을 사용하여 Contrail Cluster 설치.