Instalación de Contrail Command
Utilice este ejemplo para instalar las imágenes del contenedor Docker de Contrail Command.
Contrail Command es la interfaz gráfica de usuario de las soluciones Contrail Cloud y Contrail Enterprise Multicloud. Representa el único punto de contacto de administración para la capa subyacente de la estructura, las redes superpuestas y los puntos finales virtuales, y la aplicación de monitoreo de recursos y rendimiento AppFormix para servicios en la nube.
Contrail Command también simplifica la configuración de los clústeres de OpenStack y la integración de Contrail dentro de esos clústeres. Al proporcionar un flujo de trabajo para facilitar la integración con orquestadores, inicialmente compatible con OpenStack Kolla, Contrail Command hace que la integración sea una tarea sencilla.
Después de integrar Contrail Command con el orquestador, puede utilizar Contrail Command para realizar tareas típicas, como crear redes superpuestas, crear sabores, aumentar cargas de trabajo, adjuntar cargas de trabajo a redes superpuestas y configurar permisos de firewall para controlar las rutas de comunicación. Para estas tareas típicas, no es necesario utilizar la interfaz de usuario del orquestador (por ejemplo, el panel de control de OpenStack).
En general, puede utilizar Contrail Command para realizar flujos de trabajo automatizados como los siguientes:
implementar clústeres de OpenStack basados en Contrail y Kolla.
Supervise y gestione dispositivos subyacentes y físicos, superposiciones y puntos finales virtuales, políticas y controles de extremo a extremo.
Orqueste cargas de trabajo que se ejecutan en servidores sin sistema operativo, máquinas virtuales y contenedores.
descubrir y gestionar la estructura IP del centro de datos.
La mayoría de los flujos de trabajo se basan en la intención, lo que significa que los flujos de trabajo se configuran mediante plantillas y asistentes cuando corresponda.
Requisitos
Los requisitos del sistema para el servidor de Contrail Command son:
Una máquina virtual o un servidor físico x86 con:
4 vCPU
32 GB de RAM
Disco de 100 GB con todo el almacenamiento del usuario en la partición "/" (es decir, quitar la partición "/home" si existe, y aumentar la partición "/" en la cantidad de almacenamiento liberado)
Acceso a Internet hacia y desde la máquina virtual o el servidor físico, en lo sucesivo denominado servidor Contrail Command
Ejecuta una versión de CentOS que admite su versión de Contrail Networking.
Realizamos pruebas regulares de Contrail Command en CentOS 7, pero Contrail Command debería funcionar en otras versiones comunes de Linux. Para obtener una lista de las versiones de CentOS compatibles con Contrail Networking y combinaciones de plataformas de orquestación, consulte Lista de plataformas compatibles con Contrail Networking.
Puede instalar CentOS con paquetes actualizados usando el
yum update
comando.Una interfaz IP conectada a la red de administración. Contrail Command administra los clústeres de Contrail y OpenStack a través de esta interfaz.
Acceso SSH
Acceso al registro de hub.juniper.net . Consulte Acceso del archivo README al Registro Contrail 19XX para obtener más información.
<container_tag> Consulte Acceso del archivo README a Contrail Registry 19XX para obtener más información.
Visión general
Instalación
Contrail Command se despliega como un par de contenedores Docker. Contrail Command se instala descargando y ejecutando la contrail-command-deployer
imagen, que se ejecuta en su propio contenedor y se cierra cuando se completa la instalación de Contrail Command.
Antes de comenzar, configure un servidor CentOS 7 que cumpla con los requisitos especificados. Para obtener una lista de las plataformas compatibles, consulte https://www.juniper.net/documentation/en_US/release-independent/contrail/topics/reference/contrail-supported-platforms.pdf.
Además, elimine todas las bibliotecas de Python Docker (docker
y docker-py
) instaladas del servidor. El contrail-command-deployer
instala automáticamente todas las bibliotecas necesarias. Si está utilizando un servidor CentOS 7 mínimo recién instalado, entonces estas bibliotecas de Python Docker aún no existen en el servidor y no tiene que realizar ninguna acción.
pip uninstall docker docker-py
No hay ningún daño si emite el comando anterior cuando no hay bibliotecas de Python Docker instaladas.
Procedimiento
Procedimiento paso a paso
Realice los siguientes pasos en un servidor CentOS 7 para configurar e instalar Contrail Command.
Instale e inicie Docker Engine. El siguiente conjunto de comandos agrega el repositorio de Docker e instala e inicia Docker Community Edition versión 18.06 como ejemplo.
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce-18.06.0.ce systemctl start docker
Extraiga la imagen de
contrail-command-deployer
Docker de hub.juniper.net.Consulte Acceso README a Contrail Registry 19XX para obtener información sobre cómo obtener credenciales para acceder al registro de hub.juniper.net seguro y para obtener el nombre de la etiqueta de contenedor que se debe utilizar.
Inicie sesión en el registro hub.juniper.net .
docker login hub.juniper.net \ --username <container_registry_username> \ --password <container_registry_password>
Recupere la imagen de
contrail-command-deployer
Docker.docker pull hub.juniper.net/contrail/contrail-command-deployer:<container_tag>
donde <container_tag> es la etiqueta de contenedor para la implementación del contenedor Contrail Command (UI) para la versión que desea instalar. Consulte Acceso README a Contrail Registry 19XX para obtener el para cualquier software de <container_tag> Contrail Networking versión 19.
Cree el archivo de configuración command_servers.yml .
El archivo command_servers.yml contiene información del servidor donde planea instalar Contrail Command, así como información del registro del contenedor y otros parámetros de configuración. Contrail Command se ejecuta en un único servidor, normalmente el mismo servidor en el que se ejecuta el
contrail-command-deployer
(es decir, el servidor utilizado en este procedimiento).Al ejecutar el
contrail-command-deployer
, lee y procesa el archivo command_servers.yml . Ejemplos de este archivo se muestran en #sample-command-servers__sample-command-servers-51 y #sample-command-servers__sample-command-servers-50.Nota:Si desea implementar AppFormix, agregue las dos líneas siguientes al
command_servers.yml
archivo. Deben colocarse fuera de la jerarquía "command_servers
", ya sea inmediatamente después de "---
" en la parte superior del archivo o como las dos últimas líneas en la parte inferior del archivo. A continuación se muestra un ejemplo en el que se agregan las dos líneas en la parte superior del archivo:--- user_command_volumes: - /opt/software/appformix:/opt/software/appformix command_servers: server1: ip:
Ejecute el
contrail-command-deployer
contenedor para implementar Contrail Command.Para realizar una instalación nueva:
docker run -td --net host -v \ <ABSOLUTE_PATH_TO_command_servers.yml_FILE>:/command_servers.yml \ --privileged \ --name contrail_command_deployer \ hub.juniper.net/contrail/contrail-command-deployer:<container_tag>
donde <ABSOLUTE_PATH_TO_command_servers.yml_FILE> es la ruta de acceso absoluta al archivo command_servers.yml que creó en el paso 3 y <container_tag> es la etiqueta de contenedor para la implementación del contenedor Contrail Command (UI) para la versión que desea instalar.
(Opcional) Realice un seguimiento del progreso del paso 4.
docker logs -f contrail_command_deployer
Una vez completada la instalación, compruebe que los contenedores de Contrail Command se estén ejecutando.
[root@centos254 ~]# docker ps -a CONTAINER ID IMAGE <trimmed> STATUS <trimmed> NAMES 2e62e778aa91 hub.juniper.net/... Up <trimmed> contrail_command c8442860e462 circleci/postgre... Up <trimmed> contrail_psql 57a666e93d1a hub.juniper.net/... Exited <trimmed> contrail_command_deployer
El
contrail_command
contenedor es la GUI y elcontrail_psql
contenedor es la base de datos. Ambos contenedores deben tener un STATUS de Up.El
contrail-command-deployer
contenedor debe tener un ESTADO de Exited porque se cierra cuando se completa la instalación.-
Inicie sesión en Contrail Command con https://<Contrail-Command-Server-IP-Address>:9091. Utilice el nombre de usuario y la contraseña que especificó en el archivo command_servers.yml en el paso 3. Si utiliza los archivos command_servers.yml de ejemplo en Archivos de command_servers.yml de ejemplo, el nombre de usuario es admin y la contraseña es contrail123.
Archivos command_servers.yml de ejemplo
Archivo de command_servers.yml mínimo
El siguiente archivo de ejemplo tiene la configuración mínima que necesita al instalar Contrail Command.
Nota: Las contraseñas se proporcionan en este resultado solo con fines ilustrativos. Sugerimos usar contraseñas únicas de acuerdo con las directrices de seguridad de su organización en su entorno.
--- command_servers: server1: ip: <IP Address> # IP address of server where you want to install Contrail Command connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> registry_insecure: false container_registry: hub.juniper.net/contrail container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail contrail_config: database: type: postgres dialect: postgres password: contrail123 keystone: assignment: data: users: admin: password: contrail123 insecure: true client: password: contrail123
Complete command_servers.yml archivo
El siguiente archivo de ejemplo contiene una lista exhaustiva de configuraciones y parámetros auxiliares que puede utilizar al instalar Contrail Command.
Nota: Las contraseñas se proporcionan en este resultado solo con fines ilustrativos. Sugerimos usar contraseñas únicas de acuerdo con las directrices de seguridad de su organización en su entorno.
--- # User defined volumes #user_command_volumes: # - /var/tmp/contrail:/var/tmp/contrail command_servers: server1: ip: <IP Address> connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> # Specify either container_path #container_path: /root/contrail-command-051618.tar # or registry details and container_name registry_insecure: false container_registry: hub.juniper.net/contrail container_name: contrail-command container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail # contrail command container configurations given here go to /etc/contrail/contrail.yml contrail_config: # Database configuration. PostgreSQL supported database: type: postgres dialect: postgres host: localhost user: root password: contrail123 name: contrail_test # Max Open Connections for DB Server max_open_conn: 100 connection_retries: 10 retry_period: 3s # Log Level log_level: debug # Cache configuration cache: enabled: true timeout: 10s max_history: 100000 rdbms: enabled: true # Server configuration server: enabled: true read_timeout: 10 write_timeout: 5 log_api: true address: ":9091" # TLS Configuration tls: enabled: true key_file: /usr/share/contrail/ssl/cs-key.pem cert_file: /usr/share/contrail/ssl/cs-cert.pem # Enable GRPC or not enable_grpc: false # Static file config # key: URL path # value: file path. (absolute path recommended in production) static_files: /: /usr/share/contrail/public # API Proxy configuration # key: URL path # value: String list of backend host #proxy: # /contrail: # - http://localhost:8082 notify_etcd: false # VNC Replication enable_vnc_replication: true # Keystone configuration keystone: local: true assignment: type: static data: domains: default: &default id: default name: default projects: admin: &admin id: admin name: admin domain: *default demo: &demo id: demo name: demo domain: *default users: admin: id: admin name: Admin domain: *default password: contrail123 email: admin@juniper.nets roles: - id: admin name: admin project: *admin bob: id: bob name: Bob domain: *default password: bob_password email: bob@juniper.net roles: - id: Member name: Member project: *demo store: type: memory expire: 36000 insecure: true authurl: https://localhost:9091/keystone/v3 # disable authentication with no_auth true and comment out keystone configuraion. #no_auth: true insecure: true etcd: endpoints: - localhost:2379 username: "" password: "" path: contrail watcher: enabled: false storage: json client: id: admin password: contrail123 project_name: admin domain_id: default schema_root: / endpoint: https://localhost:9091 compilation: enabled: false # Global configuration plugin_directory: 'etc/plugins/' number_of_workers: 4 max_job_queue_len: 5 msg_queue_lock_time: 30 msg_index_string: 'MsgIndex' read_lock_string: "MsgReadLock" master_election: true # Plugin configuration plugin: handlers: create_handler: 'HandleCreate' update_handler: 'HandleUpdate' delete_handler: 'HandleDelete' agent: enabled: true backend: file watcher: polling log_level: debug # The following are optional parameters used to patch/cherrypick # revisions into the contrail-ansible-deployer sandbox. These configs # go into the /etc/contrail/contrail-deploy-config.tmpl file # cluster_config: # ansible_fetch_url: "https://review.opencontrail.org/Juniper/contrail-ansible-deployer refs/changes/80/40780/20" # ansible_cherry_pick_revision: FETCH_HEAD # ansible_revision: GIT_COMMIT_HASH