10.2.1 安装和配置Placement
(1) 安装Placement软件包
[root@controller ~]# yum install openstack-placement-api -y
安装openstack-placement-api服务,会自动在Linux中生成一个名为“placement”的用户和同名用户组。可以用以下两个命令进行查看用户和用户组:
[root@controller ~]# cat /etc/passwd | grep placement #查看用户
placement:x:993:990:OpenStack Placement:/:/bin/bash
[root@controller ~]# cat /etc/group | grep placement #查看用户组
placement:x:990:
能查询出结果就表示用户和用户组存在。
(2) 创建一个placement数据库并授权
① 进入数据库
[root@controller ~]# mysql -uroot -p123456
因为MariaDB数据库完全兼容MySql数据库,因此在使用方式上是与MySql数据库是一样的。该命令的参数“-u”后为用户名,“-p”后为密码,可以不需要空格。
登录数据库成功后就进入如上画面。
② 建立glance数据库
MariaDB [(none)]> CREATE DATABASE placement; #创建一个名为placement的数据库
【提示】SQL命令需要“;”作为结束符,不要忘记写。
③ 为数据库授权
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '123456';
上面两条语句将placement数据库所有表(placement.*)的所有权限(ALL PRIVILEGES)赋予主机名为localhost(‘localhost’)及任意远程主机(‘%’)中名为“placement”的用户(‘placement’),验证密码为PLACEMENT_DBPASS(‘123456')。
【提示】这里的密码可以根据实际需要设置,但是请一定记住。
④ 退出数据库
MariaDB [(none)]> exit;
(3) 修改Placement配置文件
① 备份配置文件
[root@controller~]#cp /etc/placement/placement.conf /etc/placement/placement.conf.bak
② 去掉所有注释,生成新的配置文件
[root@controller ~]# grep -Ev '^$|#' /etc/placement/placement.conf.bak > /etc/placement/placement.conf
该命令匹配了所有不为空和行首不为注释“#”的行,然后将结果写入(“>”表示写入)“/etc/placement/placement.conf”文件。
③ 编辑新的配置文件
[root@controller ~]# vim /etc/placement/placement.conf
我们可以看到去掉注释行和空行的文件如上所示。然后针对该配置文件进行如下修改。
“[api]”配置应用接口的认证策略:
[api]
auth_strategy = keystone
“[keystone_authtoken]”配置认证服务信息:
[keystone_authtoken]
auth_url = http://c1:5000/v3
memcached_servers = c1:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = 123456
“[placement_database]”配置连接数据库:
[placement_database]
connection = mysql+pymysql://placement:123456@c1/placement
(4) 修改apache配置文件
[root@controller ~]# vim /etc/httpd/conf.d/00-placement-api.conf
在VirtualHost节点中加入
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
如下所示:
【提示】在配置文件这两个“>=”或“<”这样的运算符两边均要有空格,否则后面运行会报错。
(5) 同步数据库
在配置文件中连接数据库配置正确后,就可以将相应的本地数据传入数据库形成数据表。
[root@controller ~]# su -s /bin/sh -c "placement-manage db sync" placement
(6) 检查同步后的数据库
[root@controller ~]# mysql -uroot -p123456 #进入到数据库
MariaDB [(none)]> use placement; #转换到placement数据库
MariaDB [placement]> show tables; #查询该数据库中所有的表
10.2.2 Placement 组件初始化
(1) 在OpenStack中创建“placement”用户并分配admin角色
① 导入admin环境变量进行鉴权
[root@controller ~]# . admin-openrc
② 在OpenStack中创建用户“placement”
[root@controller ~]# openstack user create --domain default --password 123456 placement
该语句在default域下创建了一个名为“placement”,密码为“123456”的OpenStack用户。
【提示】这里的用户名和密码要和配置文件中“[keystone_authtoken]”节中的用户名和密码一致。
③ 给用户“placement”设定admin角色
[root@controller ~]# openstack role add --project service --user placement admin
该语句为placement用户添加admin角色,让placement具有操作service项目的管理员权限。
(2) 创建服务实体“placement”
[root@controller ~]# openstack service create --name placement placement
该语句创建了一个名为“placement”,类型为“placement”的服务。
(3) 创建放置服务访问端点(Endpoint)
① 创建为一般用户访问放置服务的端点(Endpoint)
[root@controller ~]# openstack endpoint create --region RegionOne placement public http://c1:8778
② 创建为内部组件访问放置服务的端点(Endpoint)
[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://c1:8778
③ 创建为admin用户访问放置服务的端点(Endpoint)
[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://c1:8778
(4) 启动Placement放置服务
Placement和Keystone和Glance一样需要借助Apache的Web服务完成功能。修改好配置文件后重启一下Apache服务,使配置文件生效。
[root@controller ~]# systemctl restart httpd #重启Apatche服务
10.3 验证Placement放置服务
和Keystone和Glance一样,Placement也是一个Web服务,因此我们可以采用前面使用的多种方法进行检测目前组件的运行状况。
(1) 查看端口占用情况
Placement服务要占用8778端口,查看8778端口是否启用就可以知道Placement是否已运行。
[root@controller ~]# netstat -tnlup
(2) 检验服务端点
[root@controller ~]# curl http://c1:8778
(3) 查看服务运行状态
[root@controller ~]# placement-status upgrade check