Artículo detallado (detalles gráficos) Implementación del componente OpenStack-Placement

Implementación del componente OpenStack-Placement

Uno, crear una instancia de base de datos y un usuario de base de datos

[root@ct ~]# mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE placement;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Inserte la descripción de la imagen aquí

2. Cree un punto final para los usuarios del servicio de ubicación y la API

Crear usuarios de ubicación

[root@ct ~]# openstack user create --domain default --password PLACEMENT_PASS placement

Inserte la descripción de la imagen aquí

Otorgar derechos de administrador a los usuarios de las ubicaciones para el proyecto de servicio.

[root@ct ~]# openstack role add --project service --user placement admin

Inserte la descripción de la imagen aquí

Crear un servicio de colocación, el tipo de servicio es colocación.

[root@ct ~]# openstack service create --name placement --description "Placement API" placement

Inserte la descripción de la imagen aquí

Registre el puerto API en el servicio de colocación; la información registrada se escribirá en mysql

[root@ct ~]# openstack endpoint create --region RegionOne placement public http://ct:8778
[root@ct ~]# openstack endpoint create --region RegionOne placement internal http://ct:8778
[root@ct~]# openstack endpoint create --region RegionOne placement admin http://ct:8778

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Instalar el servicio de colocación

[root@controller ~]# yum -y install openstack-placement-api

Inserte la descripción de la imagen aquí

Modificar el archivo de configuración de la ubicación

修改配置文件
grep -Ev '^$|#' /etc/placement/placement.conf.bak > /etc/placement/placement.conf
openstack-config --set /etc/placement/placement.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@ct/placement
openstack-config --set /etc/placement/placement.conf api auth_strategy keystone
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_url  http://ct:5000/v3
openstack-config --set /etc/placement/placement.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_type password
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_name service
openstack-config --set /etc/placement/placement.conf keystone_authtoken username placement
openstack-config --set /etc/placement/placement.conf keystone_authtoken password PLACEMENT_PASS

Inserte la descripción de la imagen aquí
Ver archivo de configuración de ubicación

[root@ct placement]# cat placement.conf

Inserte la descripción de la imagen aquí

Importar la base de datos

su -s /bin/sh -c "placement-manage db sync" placement

Inserte la descripción de la imagen aquí

● Modificar el archivo de configuración de Apache: 00-placemenct-api.conf (este archivo se creará automáticamente después de que se instale el servicio de ubicación: configuración de host virtual)

#虚拟主机配置文件
[root@ct ~]# cd /etc/httpd/conf.d
[root@ct conf.d]# vim 00-placement-api.conf 		#安装完placement会自动创建此文件
Listen 8778

<VirtualHost *:8778>
  WSGIProcessGroup placement-api
  WSGIApplicationGroup %{GLOBAL}
  WSGIPassAuthorization On
  WSGIDaemonProcess placement-api processes=3 threads=1 user=placement group=placement
  WSGIScriptAlias / /usr/bin/placement-api
  <IfVersion >= 2.4>
    ErrorLogFormat "%M"
  </IfVersion>
  ErrorLog /var/log/placement/placement-api.log
  #SSLEngine On
  #SSLCertificateFile ...
  #SSLCertificateKeyFile ...
</VirtualHost>

Alias /placement-api /usr/bin/placement-api
<Location /placement-api>
  SetHandler wsgi-script
  Options +ExecCGI
  WSGIProcessGroup placement-api
  WSGIApplicationGroup %{GLOBAL}
  WSGIPassAuthorization On
</Location>
<Directory /usr/bin>			#此处是bug,必须添加下面的配置来启用对placement api的访问,否则在访问apache的api时会报403;添加在文件的最后即可
<IfVersion >= 2.4>				
	Require all granted
</IfVersion>
<IfVersion < 2.4>				#apache版本;允许apache访问/usr/bin目录;否则/usr/bin/placement-api将不允许被访问
	Order allow,deny				
	Allow from all		        #允许apache访问
</IfVersion>
</Directory>

Inserte la descripción de la imagen aquí

Reiniciar apache

[root@ct placement]# systemctl restart httpd

acceso de prueba de rizo

[root@ct placement]# curl ct:8778
{"versions": [{"status": "CURRENT", "min_version": "1.0", "max_version": "1.36", "id": "v1.0", "links": [{"href": "", "rel": "self"}]}]}

Inserte la descripción de la imagen aquí

Ver ocupación del puerto (netstat, lsof)

[root@ct placement]# netstat -natp | grep 8778

Inserte la descripción de la imagen aquí

== Verificar el estado de la ubicación ==

[root@ct placement]# placement-status upgrade check

Inserte la descripción de la imagen aquí

para resumir

La ubicación proporciona scripts de ubicación-apiWSGI para ejecutar servicios con Apache, nginx u otros servidores web que admitan WSGI (el proxy de entrada de Python se implementa a través de nginx o apache).
Según la solución de empaquetado utilizada para implementar OpenStack, el script WSGI puede estar ubicado en / usr / bin o en / usr / local / bin. El
servicio de colocación es un componente separado de la versión S y separado del servicio nova. La función es recopilar la información de cada nodo. Recursos disponibles, escribir las estadísticas de recursos del nodo del nodo en mysql, y el servicio de planificación de nova llamará al servicio de ubicación. El puerto de escucha del servicio de ubicación es 8778

Archivos de configuración que se modificarán:

Ideas principales de modificación para la ubicación.conf :
Autenticación Keystone relacionada (url, HOST: PUERTO, dominio, contraseña de la cuenta, etc.)
base de datos de acoplamiento (ubicación)

Ideas principales de modificación para 00-ubicación-api.conf :
Permisos de Apache, control de acceso

Supongo que te gusta

Origin blog.csdn.net/weixin_51622156/article/details/114953284
Recomendado
Clasificación