6 Openstack-Ussuri-Placement集群部署-centos8

Placement具体功能如下:
1 通过HTTP请求来跟踪和过滤资源
2 数据保存在本地数据库中
3 具备丰富的资源管理和筛选策略

6.1 配置Placement数据库

#在任意控制节点创建数据库,数据库自动同步,以controller160节点为例;
#使用root登陆数据库:

mysql -u root -p

#创建placement数据库:

CREATE DATABASE placement;

#授予对placement数据库的访问权限,刷新退出数据库:

GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
IDENTIFIED BY 'placement.123';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
IDENTIFIED BY 'placement.123';
flush privileges;
exit

6.2 加载管理凭证

source adminrc.sh

6.3 创建Placement相关服务凭证

#在任意控制节点操作,以controller160节点为例;
#创建Placement服务用户,并设置密码为placement.123

openstack user create --domain default --password-prompt placement

#输出

User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 14ef4d440ffa4dbcacbcb06a4eaab5d5 |
| name                | placement                        |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

#赋予Placement服务用户服务管理员权限及角色,无输出

openstack role add --project service --user placement admin

#创建Placement服务

openstack service create --name placement --description "Placement API" placement

#输出

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Placement API                    |
| enabled     | True                             |
| id          | 45965cc75d244cb5a5b9129c22b99e0f |
| name        | placement                        |
| type        | placement                        |
+-------------+----------------------------------+

6.4 创建Placement API endpoints

#public

openstack endpoint create --region RegionOne placement public http://controller168:8778

#输出

扫描二维码关注公众号,回复: 11628505 查看本文章
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 076a9ddd7b3744dda89f8de6fcff62a0 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 45965cc75d244cb5a5b9129c22b99e0f |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller168:8778        |
+--------------+----------------------------------+

#internal

openstack endpoint create --region RegionOne placement internal http://controller168:8778

#输出

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 3dc8d8e0fcd24b45a4a02984063e1e97 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 45965cc75d244cb5a5b9129c22b99e0f |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller168:8778        |
+--------------+----------------------------------+

#admin

openstack endpoint create --region RegionOne placement admin http://controller168:8778

#输出

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 0c148527e7b848ec864ba3b3d969aef7 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 45965cc75d244cb5a5b9129c22b99e0f |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller168:8778        |
+--------------+----------------------------------+

6.5 部署与配置Placement - ALL Controller

#安装包

yum install openstack-placement-api -y

#备份Placement配置

cp /etc/placement/placement.conf /etc/placement/placement.conf.bak
egrep -v "^$|^#" /etc/placement/placement.conf.bak >/etc/placement/placement.conf

#配置Placement配置文件,在对应项底下增加以下字段
#vim /etc/placement/placement.conf

[placement_database]
# ...
connection = mysql+pymysql://placement:placement.123@controller168/placement

[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller168:5000
auth_url = http://controller168:5000
memcached_servers = controller160:11211,controller161:11211,controller162:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = placement.123

#配置00-nova-placement-api.conf

sed -i "s/Listen\ 8778/Listen\ 172.16.1.160:8778/g" /etc/httpd/conf.d/00-nova-placement-api.conf
sed -i "s/*:8778/172.16.1.160:8778/g" /etc/httpd/conf.d/00-nova-placement-api.conf

#vim /etc/httpd/conf.d/00-placement-api.conf 
#在#SSLCertificateKeyFile ...底下添加
 #Placement API
 <Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
 </Directory>

#填充placement数据库,无输出

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

#验证placement数据库是否正常写入:

mysql -h controller168 -uplacement -pplacement.123 -e "use placement;show tables;"

#重启apache服务,并配置开机启动:

systemctl restart httpd

6.6 Placement服务验证

#加载管理凭证

source adminrc.sh

#执行状态检查,都为success为正常

placement-status upgrade check

#输出

+----------------------------------+
| Upgrade Check Results            |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success                  |
| Details: None                    |
+----------------------------------+
| Check: Incomplete Consumers      |
| Result: Success                  |
| Details: None                    |
+----------------------------------+

6.7 设置pcs资源

#前面keystone已经设置过httpd的服务,因为placement也是使用httpd服务,因此不需要再重复设置!

至此,Placement服务已部署完毕,如有问题请联系我改正,感激不尽!

5.x 部署过程遇到的问题汇总

eg.1 执行su -s /bin/sh -c "placement-manage db sync" placement 报错 
1044, "Access denied for user 'placement'@'%' to database 'placement'"
解决方案:
1 查看授权表,发现权限没有被打开
SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
+-----------+-----------+-------------------------------------------+------------+------------+
| host      | user      | password                                  | Grant_priv | Super_priv |
+-----------+-----------+-------------------------------------------+------------+------------+
| localhost | root      | *2683A2B8A9DE120C7B5CC6D45B5F7A2E708FAFCF | Y          | Y          |
| localhost | keystone  | *2431959D1DBB9DEF2BB0E90F0C08387220989A5F | N          | N          |
| %         | keystone  | *2431959D1DBB9DEF2BB0E90F0C08387220989A5F | N          | N          |
| %         | root      | *2683A2B8A9DE120C7B5CC6D45B5F7A2E708FAFCF | N          | N          |
| localhost | glance    | *4BED54445326D0D3477C30025D66AF8911CA854F | N          | N          |
| %         | glance    | *4BED54445326D0D3477C30025D66AF8911CA854F | N          | N          |
| localhost | placement | *7F75AD3C141B7CD8E66685A5505B1630D896092F | N          | N          |
| %         | placement | *7F75AD3C141B7CD8E66685A5505B1630D896092F | N          | N          |
+-----------+-----------+-------------------------------------------+------------+------------+
2 更新用户权限:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
或者 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'devops';
FLUSH PRIVILEGES;
+-----------+-----------+-------------------------------------------+------------+------------+
| host      | user      | password                                  | Grant_priv | Super_priv |
+-----------+-----------+-------------------------------------------+------------+------------+
| localhost | root      | *2683A2B8A9DE120C7B5CC6D45B5F7A2E708FAFCF | Y          | Y          |
| localhost | keystone  | *2431959D1DBB9DEF2BB0E90F0C08387220989A5F | N          | N          |
| %         | keystone  | *2431959D1DBB9DEF2BB0E90F0C08387220989A5F | N          | N          |
| %         | root      | *2683A2B8A9DE120C7B5CC6D45B5F7A2E708FAFCF | Y          | Y          |
| localhost | glance    | *4BED54445326D0D3477C30025D66AF8911CA854F | N          | N          |
| %         | glance    | *4BED54445326D0D3477C30025D66AF8911CA854F | N          | N          |
| localhost | placement | *7F75AD3C141B7CD8E66685A5505B1630D896092F | N          | N          |
| %         | placement | *7F75AD3C141B7CD8E66685A5505B1630D896092F | N          | N          |
+-----------+-----------+-------------------------------------------+------------+------------+

eg2.root@controller160:~# placement-status upgrade check
SQL connection failed. 10 attempts left.
SQL connection failed. 9 attempts left.
SQL connection failed. 8 attempts left.
SQL connection failed. 7 attempts left.
SQL connection failed. 6 attempts left.
SQL connection failed. 5 attempts left.
解决方案:
1 检查mysql 3306是否启用
2 检查connection URL是否配置及密码是否正确
3 检查本机hosts文件是否有录入各节点对应的host列表

猜你喜欢

转载自blog.csdn.net/caiyqn/article/details/106845115