实验环境配置
虚拟机环境:
宿主机:
系统:win10,内存8G
虚拟机:VMware
系统CentOS7
1.创建虚拟机,并修改主机名。例如:
hostnamectl set-hostname controller
注:在这里我电脑的虚拟机有网络,所以第二步和第六步隔过去。
配置网络:配置红色网卡 IP 地址。蓝色网卡无需特殊配置,保持网卡激活状态即可。例如:
nmcli connection add type ethernet con-name conn1 ifname ens33
nmcli connection modify conn1 ipv4.method manual ipv4.addresses 192.168.162.128/24 ipv4.gateway 192.168.162.128
nmcli connection up conn1
3、 修改/etc/hosts 文件,添加内容如下:
192.168.162.128 controller
4、配置 controller node( 管理节点 ) 为时间服务器 , 修改 controller node( 管理节点 ) 的 /etc/chrony.conf 配置文件。添加如下内容:
server times.aliyun.com iburst
allow 192.168.162.128/24
bindcmdaddress 0.0.0.0
local stratum 10
启动 chronyd 服务,并设置开机自动启动。
systemctl enable chronyd.service
systemctl start chronyd.service
5、关闭所有节点的防火墙服务
systemctl disable firewalld
systemctl stop firewalld
6、配置 yum 源
(1)为虚拟机添加一个硬盘,OSO-yum-000001.vmdk
(2)如果不能上网,则在 Controller node(管理节点)添加包含 yum 仓库的磁盘文件,并在管理节点进行如下操作。
A. 将系统安装 DVD 镜像光盘挂在到/media 目录。
mount /dev/cdrom /media/
B. 安装 vsftpd 服务,并启动服务。
rpm -ivh /media/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm
systemctl start vsftpd.service
systemctl enable vsftpd.service
mkdir /var/ftp/yum
echo "/dev/sdb1 /var/ftp/yum/ xfs defaults 0 0" >> /etc/fstab
mount -a
D. 恢复 SELinux 上下文。
restorecon -Rv /var/ftp/
(3) 删除或移走所有节点/etc/yum.repos.d 目录中的文件,并在该目录中创建新文件 b.repo,包含如下内容:
[openstack-Ocata]
name=OpenStack Ocata Repository
baseurl=ftp://controller/yum/OpenStack-Ocata/
gpgcheck=0
enabled=1
[base]
name=base
baseurl=ftp://controller/yum/base
enabled=1
gpgcheck=0
[extras]
name=extras
baseurl=ftp://controller/yum/extras/
enabled=1
gpgcheck=0
[updates]
name=updates
baseurl=ftp://controller/yum/updates/
enabled=1
gpgcheck=0
7、在所有节点安装软件包。
1) 更新所有软件包,如果更新了内核,请重启系统后再继续其他操作。
yum upgrade –y
2) 安装 OpenStack 客户端
yum install python-openstackclient –y
这里直接执行可能会出错,请看下面的疑难小结。
3) 由于 CentOS 或 RHEL 的 SELinux 默认是打开的,因此需要安装 openstack-selinux 包来自动管理跟 openstack 服务有关的安全策略。
yum install openstack-selinux –y
8、大多数 OpenStack 服务使用 SQL 数据库存储信息。数据库一般运行在 Controller node(管理节点)。在管理节点安装并配置 MariaDB 数据库组件。
1) 安装软件包
yum install mariadb mariadb-server python2-PyMySQL –y
2) 创建并编辑文件/etc/my.cnf.d/openstack.cnf。
创建[mysqld]小节,设置 bind-address 配置项为管理节点的管理 IP 地址。添加其他有用的配置项,以及支持 UTF-8 字符集
[mysqld] bind-address = 192.168.162.149
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
3) 完成安装
A. 启动数据库服务并设置开机自动启动。
systemctl enable mariadb.service
systemctl start mariadb.service
B. 执行 mysql_secure_installation,设置数据库管理员 root 用户的密码。
mysql_secure_installation
9、OpenStack 使用消息队列服务进行服务之间的协调和状态信息的同步。消息队列服务通常运行于 Controller node(管理节点)。OpenStack 支持多种消息队列服务,包括 RabbitMQ, Qpid 和 ZeroMQ。大多数 OpenStack 发行版支持 RabbitMQ。在管理节点安装 RabbitMQ 消息队列服务。
1) 安装软件包
yum install rabbitmq-server –y
2) 启动消息队列服务并设置开机自动启动。
systemctl enable rabbitmq-server.service
3)systemctl start rabbitmq-server.service
3) 添加 openstack 用户
rabbitmqctl add_user openstack RABBIT_PASS 替换 RABBIT_PASS 为一个合适的密码
4) 为 openstack 用户赋予读和写访问权限。
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
10、identity 服务身份认证机制使用 Memcached 缓存令牌。Memcached
服务通常运行于 Controller node(管理节点)。在管理节点安装
Memcached 服务。
1) 安装软件包。
yum install memcached python-memcached –y
2) 编辑/etc/sysconfig/memcached 文件,为使其他节点可以访问。
编辑现有配置项:
OPTIONS=”-l 127.0.0.1,::1”
OPTIONS="-l 127.0.0.1,::1,controller"
3) 启动 Memcached 服务并设置开机自动启动。
systemctl enable memcached.service
systemctl start memcached.service
疑难小结:
1.在进行安装openstack客户端的时候一直出现错误,错误是没有可用软件包 python-openstackclient
错误:无需任何处理。
这里的这个错误找了很久,用了一个工具:
首先更新yum源为163的。命令如下:
1.首先备份源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.备份之前的源BASE,进入对应目录。
cd /etc/yum.repos.d/
3.wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
4.mv CentOS7-Base-163.repo CentOS-Base.repo
5. 刷新YUM的缓存状态:
yum clean all
yum makecache
一:安装RDO软件
sudo yum install -y http://rdo.Fedorapeople.org/rdo-release.rpm
二:安装一个叫packstack的部署包
sudo yum install -y openstack-packstack
然后执行安装openstack的客户端,成功安装。
2.第二个错误是:
Job for rabbitmq-server.service failed because the control process exited with error code. See “systemctl status rabbitmq-server.service” and “journalctl -xe” for details.
解决办法:
查看/etc/hosts是否配置正确
重新启动
看了看果然是我的配置有问题,更改ip后正确。