仅在控制节点安装
安装Placement软件包
yum -y install openstack-placement-api
在安装“openstack-placement-api”软件包的时候,会自动在CentOS Linux中生成一个名为“placement”的用户和同名用户组
查看用户信息
查看用户组信息
cat /etc/passwd | grep placement
cat /etc/group | grep placement
创建Placement的数据库并授权
进入MariaDB数据库
mysql -uroot -p000000
新建“placement”数据库
给用户授权使用新建数据库
CREATE DATABASE placement;
GRANT ALL PRIVILEGES ON placement.* TO placement@'localhost' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON placement.* TO placement@'%' IDENTIFIED BY '000000';
quit退出
修改Placement配置文件
将配置文件去掉注释和空行
1 备份配置文件
2 去掉所有注释和空行,生成新的配置文件
cp /etc/placement/placement.conf /etc/placement/placement.bak
grep -Ev '^$|#' /etc/placement/placement.bak > /etc/placement/placement.conf
vi /etc/placement/placement.conf
这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行
修改“[placement_database]”部分,实现与数据库连接
connection = mysql+pymysql://placement:000000@controller/placement
修改“[api]”与“[keystone_authtoken]”部分,实现与Keystone交互
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000 memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = placement
password = 000000
文件内容如下
[DEFAULT]
[api]
auth_strategy = keystone
[cors]
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = placement
password = 000000
[oslo_policy]
[placement]
[placement_database]
connection = mysql+pymysql://placement:000000@controller/placement
[profiler]
修改Apache配置文件
Placement本质上和Glance及Keystone一样,是运行在Web服务器上的应用。安装完Placement的软件包以后,将在Apache的配置文件目录下自动创建一个名为“00-placement- api.conf”的配置文件,通过它,Web服务器才能知道如何运行Placement
vi /etc/httpd/conf.d/00-placement-api.conf
在“VirtualHost”节点中加入以下代码使Httpd对“/usr/bin”目录拥有权限
<Directory /usr/bin>
Require all granted
</Directory>
初始化Placement的数据库
Placement安装文件提供了数据库的基础表数据,此时还没有将数据导入“placement”数据库中,需要手动将数据同步导入数据库中
su placement -s /bin/sh -c "placement-manage db sync"
这里有警告,不用管他
“su placement”:su命令用于用户切换。这里切换到“placement”用户,该用户已经拥有对“placement”数据库的管理权限。 “-s /bin/sh”:-s为su命令的选项,指定用什么编译器(Shell)来执行命令,“/bin/sh”就是指定的编译器。 “-c”:su命令的选项,在其后引号内的是具体执行的命令。"placement-manage db sync" 实现了数据同步到数据库
创建Placement用户并分配角色
导入环境变量模拟登录
在OpenStack云计算平台中创建用户“placement”
给用户“placement”分配“admin”角色
. admin-login
openstack user create --domain default --password 000000 placement
openstack role add --project project --user placement admin
创建Placement服务及端点
创建名为“placement”、类型为“placement”的服务
创建公众用户访问的服务端点
创建内部组件访问的服务端点
创建Admin用户访问端点
openstack service create --name placement placement
openstack endpoint create --region RegionOne placement public http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778
启动Placement服务
Placement和Keystone以及Glance一样,需要借助Apache的Web服务实现功能。这里只需要重启Apache服务,使配置文件生效
systemctl restart httpd
由于Placement服务要占用8778端口,查看8778端口是否启用就可以知道Placement是否已运行或通过curl命令和Placement提供的服务端点通信进行检验