这是本人的一些学习笔记,如果有错误的地方或者更好的解决方法,欢迎提出!!
OpenStack的基础环境配置包括主机名,网络,yum源配置,rabbitmq服务,memcached服务,etcd服务,OpenStack框架安装。
主机名 | ip | 节点 |
openstack01 | 192.168.238.100 | 控制节点 |
openstack02 | 192.168.238.200 | 计算节点 |
1.虚拟机用的是centos7 ,这是虚拟机的硬件配置
2.开机进入系统,先自定义修改主机名,配置网卡
[root@localhost ~]# hostnamectl set-hostname openstack01
[root@localhost ~]# bash
[root@openstack01 ~]#
网卡配置我一般用nmtui命令,OpenStack01主机的ip设置为192.168.238.100
配置完成后ping一下www.baidu.com 先测试一下能否连接外网
[root@openstack01 ~]# ping www.baidu.com
PING www.a.shifen.com (183.240.98.198) 56(84) bytes of data.
64 bytes from 183.240.98.198: icmp_seq=1 ttl=128 time=19.5 ms
64 bytes from 183.240.98.198: icmp_seq=2 ttl=128 time=26.0 ms
64 bytes from 183.240.98.198: icmp_seq=3 ttl=128 time=189 ms
64 bytes from 183.240.98.198: icmp_seq=4 ttl=128 time=58.0 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 19.599/73.412/189.911/68.820 ms
[root@openstack01 ~]#
3.在完成网络配置后,配置yum镜像源
yum源我这里使用的是华为云
切换到/etc/yum.repos.d/目录下,将目录文件下的repo文件进行备份(我这里直接删了)
使用命令
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
或者
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
[root@openstack01 ~]# cd /etc/yum.repos.d/
[root@openstack01 yum.repos.d]# ls
[root@openstack01 yum.repos.d]#
[root@openstack01 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1811 0 1811 0 0 3683 0 --:--:-- --:--:-- --:--:-- 3688
下载完成后,先使用yum clean all (用于清空缓存),再使用yum makecache (重建缓存)
[root@openstack01 yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up everything
[root@openstack01 yum.repos.d]# yum makecache
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/10): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/10): base/7/x86_64/filelists_db | 7.2 MB 00:00:02
(3/10): base/7/x86_64/other_db | 2.6 MB 00:00:00
(4/10): extras/7/x86_64/filelists_db | 305 kB 00:00:00
(5/10): extras/7/x86_64/primary_db | 253 kB 00:00:01
(6/10): extras/7/x86_64/other_db | 154 kB 00:00:00
(7/10): base/7/x86_64/primary_db | 6.1 MB 00:00:04
(8/10): updates/7/x86_64/primary_db | 27 MB 00:00:09
(9/10): updates/7/x86_64/other_db | 1.6 MB 00:00:00
(10/10): updates/7/x86_64/filelists_db | 15 MB 00:00:15
Determining fastest mirrors
Metadata Cache Created
[root@openstack01 yum.repos.d]#
确定执行上述两条命令没有报错之后,再使用yum repolist 命令测试一下,效果如下
[root@openstack01 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.huaweicloud.com 10,072
extras/7/x86_64 CentOS-7 - Extras - mirrors.huaweicloud.com 526
updates/7/x86_64 CentOS-7 - Updates - mirrors.huaweicloud.com 6,173
repolist: 16,771
[root@openstack01 yum.repos.d]#
4.下一步是关闭Linux的防火墙和selinux服务,确保OpenStack能顺利执行
关闭防火墙和设置防火墙不随开机而自启动的命令如下:
[root@openstack01 yum.repos.d]# systemctl stop firewalld
[root@openstack01 yum.repos.d]# systemctl disable firewalld
关闭selinux的命令如下
[root@openstack01 yum.repos.d]# setenforce 0
5.安装OpenStack相关包
安装OpenStack云计算平台框架
[root@openstack01 yum.repos.d]# yum install -y centos-release-openstack-train
安装OpenStack云计算平台客户端
[root@openstack01 yum.repos.d]# yum install -y python-openstackclient
安装OpenStack selinux管理包
[root@openstack01 yum.repos.d]# yum install -y openstack-selinux
6.安装MariaDB数据库
安装命令如下
[root@openstack01 ~]# yum install -y mariadb-server python-MyPySQL
编辑数据库配置文件,需自己新建一个cnf文件,在这我新建的文件是openstack.cnf
[root@openstack01 ~]# cd /etc/my.cnf.d/
[root@openstack01 my.cnf.d]# ls
client.cnf enable_encryption.preset mariadb-server.cnf mysql-clients.cnf openstack.cnf
[root@openstack01 my.cnf.d]# cat openstack.cnf
[mysqld]
bind-address=192.168.238.100
default-storage-engine=innodb
innodb_file_per_table=on
max_connections=4096
collation-server=utf8_general_ci
character-set-server=utf8
启动数据库并设置为开机自启动
[root@openstack01 my.cnf.d]# systemctl start mariadb
[root@openstack01 my.cnf.d]# systemctl enable mariadb
初始化数据库
[root@openstack01 my.cnf.d]# mysql_secure_installation
根据问题回答,实现对数据库的初始化工作
可参考网页https://blog.51cto.com/u_16175452/8555968
然后登录数据库
[root@openstack01 my.cnf.d]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.3.20-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
7.安装rabbitmq消息队列服务
安装命令如下
[root@openstack01 ~]# yum install -y rabbitmq-server
设置rabbitmq消息队列服务的启动和开机自启动
[root@openstack01 ~]# systemctl start rabbitmq-server
[root@openstack01 ~]# systemctl enable rabbitmq-server
新创建一个rabbitmq的用户,密码为000000
[root@openstack01 ~]# rabbitmqctl add_user rabbitmq 000000(密码)
设置rabbitmq用户管理rabbitmq的权限,其中“.*” 表示所有资源,命令中的三个“.*”分别对应 配置,写入,读取的权限
[root@openstack01 ~]# rabbitmqctl set_permissions rabbitmq ".*" ".*" ".*"
Setting permissions for user "rabbitmq" in vhost "/"
然后查看rabbitmq的服务端口有没有启动
rabbitmq消息队列服务有两个端口,分别是25627和5672
[root@openstack01 ~]# ss -lntpu | grep 5672
tcp LISTEN 0 128 *:25672 *:* users:(("beam.smp",pid=3077,fd=46))
tcp LISTEN 0 128 :::5672 :::* users:(("beam.smp",pid=3077,fd=55))
8.安装Memcached内容缓存服务
[root@openstack01 ~]# yum install -y memcached python-memcached
安装完成后修改配置文件如下
[root@openstack01 ~]# cd /etc/sysconfig/
[root@openstack01 sysconfig]# cat memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,192.168.238.100"
修改完成后启动memcached内容缓存服务并设计开机自启动
[root@openstack01 sysconfig]# systemctl start memcached
[root@openstack01 sysconfig]# systemctl enable memcached
最后通过端口检查服务是否开启,memcached内容缓存服务对外服务端口为11211
[root@openstack01 ~]# ss -lntpu | grep memcached
tcp LISTEN 0 128 192.168.238.100:11211 *:* users:(("memcached",pid=4220,fd=28))
tcp LISTEN 0 128 127.0.0.1:11211 *:* users:(("memcached",pid=4220,fd=26))
tcp LISTEN 0 128 ::1:11211 :::* users:(("memcached",pid=4220,fd=27))
9.安装etcd分布式存储系统
安装命令如下
[root@openstack01 ~]# yum install -y etcd
配置服务器,按如下修改参数
[root@openstack01 ~]# cd /etc/etcd
[root@openstack01 etcd]# cat etcd.conf | grep -Ev '^$|#'
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.238.100:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.238.100:2379"
ETCD_NAME="openstack01"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.238.100:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.238.100:2379"
ETCD_INITIAL_CLUSTER="openstack01=http://192.168.238.100:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
[root@openstack01 etcd]#
启动etcd存储系统
[root@openstack01 ~]# systemctl start etcd
[root@openstack01 ~]# systemctl enable etcd
通过端口检查服务是否启动
[root@openstack01 ~]# ss -lntpu | grep etcd
tcp LISTEN 0 128 192.168.238.100:2379 *:* users:(("etcd",pid=4702,fd=6))
tcp LISTEN 0 128 192.168.238.100:2380 *:* users:(("etcd",pid=4702,fd=5))
[root@openstack01 ~]#
10.在此基础上,创建一个快照,克隆出一台虚拟机,名字为openstack02(计算节点)
然后自主选择克隆方式,虚拟机存放位置
11.修改openstack02网络配置,同时分别在openstack01 和openstack02 配置hosts
[root@openstack01 ~]# vi /etc/hosts
[root@openstack01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.238.100 openstack01
192.168.238.200 openstack02
ping计算节点openstack02测试
[root@openstack01 ~]# ping openstack02
PING openstack02 (192.168.238.200) 56(84) bytes of data.
64 bytes from openstack02 (192.168.238.200): icmp_seq=1 ttl=64 time=1.01 ms
64 bytes from openstack02 (192.168.238.200): icmp_seq=2 ttl=64 time=1.66 ms
^C
--- openstack02 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1006ms
rtt min/avg/max/mdev = 1.011/1.338/1.665/0.327 ms
[root@openstack01 ~]#
自此,openstack01(控制节点)和openstack02(计算节点)的基础环境配置完成