6 OpenStack Victoria 集群部署 - Placement集群部署 - Ubuntu20.04

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

6.1 配置Placement数据库

#在任意控制节点创建数据库,数据库自动同步,以controller003节点为例;
#使用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相关服务凭证

#在任意控制节点操作,以controller003节点为例;
#创建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://controller100:8778

#输出

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 076a9ddd7b3744dda89f8de6fcff62a0 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 45965cc75d244cb5a5b9129c22b99e0f |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller100:8778        |
+--------------+----------------------------------+

#internal

openstack endpoint create --region RegionOne placement internal http://controller100: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://controller100:8778        |
+--------------+----------------------------------+

#admin

openstack endpoint create --region RegionOne placement admin http://controller100: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://controller100:8778        |
+--------------+----------------------------------+

6.5 部署与配置Placement - ALL Controller

#安装包

apt install 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@controller100/placement
connection_recycle_time = 3600
[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
www_authenticate_uri = http://controller100:5000
auth_url = http://controller100:5000
memcached_servers = controller003:11211,controller004:11211,controller005:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = placement.123

#vim /etc/apache2/sites-available/placement-api.conf

sed -i "s/Listen\ 8778/Listen\ 192.168.1.3:8778/g" /etc/apache2/sites-available/placement-api.conf
sed -i "s/*:8778/192.168.1.3/g" /etc/apache2/sites-available/placement-api.conf

#重启apache2

systemctl restart apache2.service

#填充placement数据库,无输出

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

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

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

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

systemctl restart apache2.service

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@controller003:~# 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列表
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值