Implementación del componente OpenStack-Keystone "Implementación de la versión T"

1. Asuntos que requieren atención

1.1 Orden de instalación del componente OpenStack

1、Keystone(apache)
2、glance
3、nova
4、neutron
  • Al implementar componentes de openstack, primero debe instalar el servicio de autenticación (keystone) y Apache ejecuta el servicio de autenticación. Una vez completada la instalación, puede crear y administrar cuentas, y luego instalar el servicio espejo (vistazo), computación servicio (nova) y servicio de red (neutron)

1.2 Introducción a la gestión y al cliente

  • Entre ellos, el servicio informático y el servicio de red se dividen en el extremo de gestión y el cliente, por lo que es necesario instalar el extremo de gestión del servicio informático y el servicio de red en el extremo de gestión de openstack, instalar el cliente del servicio informático y el servicio de red en el nodo. nodo donde se crea la máquina virtual, y finalmente se instala el servicio del tablero, las API de varios componentes de openstack se ejecutan a través de apache;
  • El lado de administración de openstack es responsable de la programación del proceso de
    creación de máquinas virtuales. Los datos relacionados con la creación de máquinas virtuales a través del lado de administración de openstack eventualmente se registrarán en mysql (mariadb); el
    nodo no tiene permiso para escribir datos en la base de datos, solo el lado de control tiene permiso, y el nodo de nodo La comunicación con el extremo de control es una comunicación indirecta a través de rabbitmq. El nodo de nodo escuchará a rabbitmq, y el extremo de control también escuchará a rabbitmq. El extremo de control envía la instrucción para crear una máquina virtual para rabbitmq El nodo nodo que escucha la cola designada de rabbitmq recibe el mensaje y crea la máquina virtual;

Dos, proceso de implementación de componentes OpenStack-Keystone

2.1 Crear una instancia de base de datos y un usuario de base de datos

[root@ct ~]# mysql -uroot -pabc123
...
MariaDB [(none)]> create database keystone;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
Bye

2.2 Instalar y configurar keystone, base de datos, Apache

2.2.1 Instalar keystone, httpd, mod_wsgi

  • La función del paquete mod_wsgi es permitir que apache haga proxy de los componentes del programa pythone; todos los componentes de openstack, incluida la API, están escritos en python, pero el acceso es apache y apache enviará la solicitud a python para su procesamiento. Estos paquetes solo se instalan en el nodo controlador
[root@ct ~]# yum -y install openstack-keystone httpd mod_wsgi
[root@ct ~]# cp -a /etc/keystone/keystone.conf{,.bak}
[root@ct ~]# grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf
#通过pymysql模块访问mysql,指定用户名密码、数据库的域名、数据库名
[root@ct ~]# openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@ct/keystone
#指定token的提供者;提供者就是keystone自己本身
[root@ct ~]# openstack-config --set /etc/keystone/keystone.conf token provider fernet
#Fernet:一种安全的消息传递格式

2.2.2 Inicializar la base de datos del servicio de autenticación

[root@ct ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

2.2.3 Inicializar el repositorio de claves fernet

  • El siguiente comando generará dos claves. Las claves generadas se colocan en el directorio / etc / keystone / para cifrar los datos.
[root@ct ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@ct ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

2.2.4 Configurar el servicio de autenticación de identidad bootstrap

[root@ct ~]# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://ct:5000/v3/ \
--bootstrap-internal-url http://ct:5000/v3/ \
--bootstrap-public-url http://ct:5000/v3/ \
--bootstrap-region-id RegionOne		#指定一个区域名称

#此步骤是初始化openstack,会把openstack的admin用户的信息写入到mysql的user表中,以及url等其他信息写入到
mysql的相关表中;
 
#admin-url是管理网(如公有云内部openstack管理网络),用于管理虚拟机的扩容或删除;如果共有网络和管理网是一个
网络,则当业务量大时,会造成无法通过openstack的控制端扩容虚拟机,所以需要一个管理网; 

#internal-url是内部网络,进行数据传输,如虚拟机访问存储和数据库、zookeeper等中间件,这个网络是不能被外网
访问的,只能用于企业内部访问 

#public-url是共有网络,可以给用户访问的(如公有云) #但是此环境没有这些网络,则公用同一个网络 

#5000端口是keystone提供认证的端口 

#需要在haproxy服务器上添加一条listen 

#各种网络的url需要指定controler节点的域名,一般是haproxy的vip的域名(高可用模式)

2.2.5 Configurar el servidor HTTP Apache

[root@ct ~]# echo "ServerName ct" >> /etc/httpd/conf/httpd.conf

2.2.6 Crear archivo de configuración

  • Después de instalar el paquete mod_wsgi, se generará el archivo wsgi-keystone.conf. El host virtual se configura en el archivo y se monitorea el puerto 5000. mod_wsgi es la puerta de enlace de Python
[root@ct ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

2.2.7 Iniciar servicio

[root@ct ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@ct ~]# systemctl start httpd

2.2.8 Configurar las variables de entorno de la cuenta de administrador

  • Estas variables de entorno se utilizan para crear roles y proyectos, pero la creación de roles y proyectos requiere información de autenticación, por lo que la información de autenticación, como nombres de usuario y contraseñas, se declara a través de variables de entorno para engañar a openstack para que haya iniciado sesión y haya pasado la autenticación, de modo que los proyectos y se pueden crear roles;
  • Es decir, la información de autenticación del usuario administrador se pasa a openstack para su verificación declarando variables de entorno para realizar una operación no interactiva para openstack.
[root@ct ~]# cat >> ~/.bashrc << EOF
> export OS_USERNAME=admin
> export OS_PASSWORD=ADMIN_PASS
> export OS_PROJECT_NAME=admin
> export OS_USER_DOMAIN_NAME=Default
> export OS_PROJECT_DOMAIN_NAME=Default
> export OS_AUTH_URL=http://ct:5000/v3
> export OS_IDENTITY_API_VERSION=3
> export OS_IMAGE_API_VERSION=2
> EOF
[root@ct ~]# source ~/.bashrc

2.3 comando openstack para realizar algunas operaciones

  • Al configurar las variables de entorno, puede usar comandos de openstack para realizar algunas operaciones

2.3.1 Ver la lista de usuarios de OpenStack

[root@ct ~]# openstack user list
+----------------------------------+-------+
| ID                               | Name  |
+----------------------------------+-------+
| beafd9c73309485381c6c6754d37f771 | admin |
+----------------------------------+-------+

Inserte la descripción de la imagen aquí

2.3.2 Crear dominios, proyectos, usuarios y roles de OpenStack

  • Cree un proyecto (proyecto), créelo en el dominio especificado (dominio), especifique la información de descripción, el nombre del proyecto es servicio (puede usar la lista de dominios de openstack para consultar)
[root@ct ~]# openstack project create --domain default --description "Service Project" service
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Service Project                  |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 600dd444a18346e9a8c6c854b9a4f19e |
| is_domain   | False                            |
| name        | service                          |
| options     | {}                               |
| parent_id   | default                          |
| tags        | []                               |
+-------------+----------------------------------+

Inserte la descripción de la imagen aquí

2.3.3 Crear un rol (puede usar la lista de roles de openstack para ver)

[root@ct ~]# openstack role create user
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| domain_id   | None                             |
| id          | cac8d79a2b4a43acbd3004f718acf547 |
| name        | user                             |
| options     | {}                               |
+-------------+----------------------------------+
  • Ver la lista de roles de openstack
[root@ct ~]# openstack role list
+----------------------------------+--------+
| ID                               | Name   |
+----------------------------------+--------+
| 3be0345b4d124e7fbb318fa788ca3f7e | member |
| 429c71a299da400fa56d3113f8fb5bf1 | reader |
| 6b2c8f17071342c8bef3cd9379267b8a | admin  |
| cac8d79a2b4a43acbd3004f718acf547 | user   |
+----------------------------------+--------+

# admin为管理员
# member为 租户
# user:用户

Inserte la descripción de la imagen aquí

2.3.4 Compruebe si se puede obtener la información del token sin especificar una contraseña

  • Servicios de verificación y certificación
[root@ct ~]# openstack token issue

Inserte la descripción de la imagen aquí

Tres, resumen

  • El componente Keystone se utiliza como un módulo unificado de autenticación y autorización en el clúster de OpenStack. Su función principal es controlar el usuario (usuario), el inquilino (inquilino), el rol (rol), el token (token / certificado) (la compilación e implementación manual es alrededor ampliado por esta función)
1.User:使用 openstack 的用户。 

2.Tenant:租户,可以理解为一个人、项目或者组织拥有的资源的合集。在一个租户中可以拥有很多个用户,这些用户
可以根据权限的划分使用租户中的资源。 

3.Role:角色,用于分配操作的权限。角色可以被指定给用户,使得该用户获得角色对应的操作权限。 

4.Token:指的是一串比特值或者字符串,用来作为访问资源的记号。Token 中含有可访问资源的范围和有效时间,token是
用户的一种凭证,需要使用正确的用户名和密码向 Keystone 服务申请才能得到 token。

La idea de usar el modo de implementación manual para construir OpenStack:

1、分模块部署
2、部署keystone模块的基础环境(下载依赖包、组件包、第三方工具/插件)
3、创建、开启此模块的功能
(以keystone为例,创建并初始化认证数据库、修改配置文件、初始化密钥-fernet格式、配置身份认证服务)
4、验证

Supongo que te gusta

Origin blog.csdn.net/weixin_42449832/article/details/113362518
Recomendado
Clasificación