在Controller节点
在 OpenStack Stein 版本发布之前,放置服务 placement 与计算服务 API(nova-api)一起位于计算服务 nova 中。
一、安装与配置Placement
1、安装Placement软件包
在安装“openstack-placement-api”软件包的时候,会自动在CentOS Linux中生成一个名为“placement”的用户和同名用户组。
(1)查看用户信息
(2)查看用户组信息
2、创建Placement的数据库并授权
第1步,用下面的方法进入MariaDB数据库服务器。
第2步,新建“placement”数据库。
第3步,给用户授权使用新建数据库。
第4步,退出数据库。
3、修改Placement配置文件
(1)将配置文件去掉注释和空行
第1步,备份配置文件。
第2步,去掉所有注释和空行,生成新的配置文件。
这里的正则表达式“^ParseError: KaTeX parse error: Expected 'EOF', got '#' at position 2: |#̲”的具体含义为:匹配空行(“^”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。
(2)编辑新的配置文件
第1步,打开配置文件进行编辑。
第2步,修改“[placement_database]”部分,实现与数据库连接。
第3步,修改“[api]”与“[keystone_authtoken]”部分,实现与Keystone交互。
(官方参考文献)
4、修改Apache配置文件
(官方文档坑点之一,这个步骤官方文档没有提到,如果不做,后面计算服务检查时将会报错)
Placement本质上和Glance及Keystone一样,是运行在Web服务器上的应用。安装完Placement的软件包以后,将在Apache的配置文件目录下自动创建一个名为“00-placement-api.conf”的配置文件,通过它,Web服务器才能知道如何运行Placement
在“VirtualHost”节点中加入以下代码使Httpd对“/usr/bin”目录拥有权限。
重启httpd服务
5、初始化Placement的数据库
(1)同步数据库
Placement安装文件提供了数据库的基础表数据,此时还没有将数据导入“placement”数据库中,需要手动将数据同步导入数据库中。
“su placement”:su命令用于用户切换。这里切换到“placement”用户,该用户已经拥有对“placement”数据库的管理权限。
“-s /bin/sh”:-s为su命令的选项,指定用什么编译器(Shell)来执行命令,“/bin/sh”就是指定的编译器。
“-c”:su命令的选项,在其后引号内的是具体执行的命令。
"placement-manage db sync":实现了数据同步到数据库。
(2)检查数据库
二、Placement组件初始化
Placement安装与配置成功以后,需要给Placement初始化用户及密码并分配用户角色、初始化服务和服务端点等,使Placement组件可以启用。
1、创建Placement用户并分配角色
第1步,导入环境变量模拟登录。
第2步,在OpenStack云计算平台中创建用户“placement”。
[root@controller ~]# openstack user create --domain default --password 000000 placement
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 567f9dfb13c54535a82924bd201169a5 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
第3步,给用户“placement”分配“admin”角色
2、创建Placement服务及端点
(1)创建服务
创建名为“placement”、类型为“placement”的服务。
2)创建放置服务端点
OpenStack组件的服务端点有3种,分别对应Admin用户(admin)、内部组件(internal)、公众用户(public)服务的地址。
第1步,创建公众用户访问的服务端点。
第2步,创建内部组件访问的服务端点。
第3步,创建Admin用户访问端点。
3、启动Placement服务
Placement和Keystone以及Glance一样,需要借助Apache的Web服务实现功能。这里只需要重启Apache服务,使配置文件生效。
三、检测Placement服务
1.查看端口占用情况
由于Placement服务要占用8778端口,查看8778端口是否启用就可以知道Placement是否已运行。
2.检验服务端点
通过curl命令和Placement提供的服务端点通信进行检验。
3.使用下面的命令检查,看能否返回如下图中的列表