虚拟机规划

本文需要的yum点我提前下载
本文需要的官网文档点我提前下载

  • controller(控制节点):内存3G,cpu开启虚拟化, ip:10.0.0.11
  • compute1(计算节点): 内存1G,cpu开启虚拟化(必开),ip:10.0.0.31
      控制节点只有一个,所以配置要给大些,计算节点可以有多个,但是虚拟化一定要开启,将上一节的模板机克隆出来,然后自行修改配置的大小,内存和虚拟化一定要注意,怎么修改点我看上文,这个配置最低要求就是上面写的那样。所以你的电脑至少要有8G内存才行,看看我的controller的设置:

pj59.png
  再看看compute1的设置
poLN.png
  compute1的虚拟化一定要打开,全都配置好再开机,然后ip地址需要进入要网卡配置文件处修改。下面是controller的网卡配置文件,这个是默认的不需要修改就可以直接用xshell连接,上一节模板机就是这个地址

TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.11
NETMASK=255.255.255.0
GATEWAY=10.0.0.254
DNS1=223.5.5.5
DNS2=114.114.114.114

  现在是comput01的网卡修改,这个需要在vm里面修改好了重启网卡才能用xshell连接,因为原来的模板机地址是10.0.0.11,而克隆的地址也是这个所以ip地址会冲突,xshell无法连接,要把compute1的地址改好了才能连接:

vim /etc/sysconfig/network-scripts/ifcfg-eth0 

  修改内容如下:

TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.31
NETMASK=255.255.255.0
GATEWAY=10.0.0.254
DNS1=223.5.5.5
DNS2=114.114.114.114

  之后重启网卡配置:

systemctl restart network

  然后查看地址直接用xshell连接即可,接着修改虚拟机的主机名,这里把xshell的选项卡名字也改好,不然容易出错,修改主机名字的命令:

hostnamectl set-hostname controller
exit
hostnamectl set-hostname compute1
exit

  各主机分开执行,执行完之后分别按退出然后在xshell里面按Ctrl+shift+R就可以重新连接,然后发现主机名称已经改好了。注意这里的主机名一定要改对,不要自己想改什么就改什么,因为后续有些服务不写地址,写的都是主机名称,而两台主机相互之间要ping通才可以。
  现在分别修改hosts文件,修改hosts命令是一样的:

vim /etc/hosts

  然而两边的配置文件却不相同,controller的内容是:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.31   compute1
10.0.0.11   controller

  在compute1这边是:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.11   controller
10.0.0.31   compute1

  改好之后测试方法就是在分别在两边直接ping对方的主机名,如果ping不通那就绝对是你的名城名没有修改正确。

配置yum源

  现在配置OpenStack的yum源,先上传上来,然后解压,

mount /dev/cdrom /mnt
cd /opt
rz

  输入完rz之后就上传OpenStack的yum源,点击下载之后就上传吧,这里我们输入命令可以点击xshell最上面的查看--撰写--撰写栏开启,然后最下面选择发送文本到当前xshell的全部回话
p3t7.png
  这样无论输入了什么两边都会正常显示,不用去写两遍。这里上传的文件就是OpenStack的yum源,每个版本都不一样,传完之后检查大小,一定要注意路径
p635.png
  开始解压,并创建yum源

tar xf openstack_rpm.tar.gz
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0

[openstack]
name=openstack
baseurl=file:///opt/repo
gpgcheck=0' >/etc/yum.repos.d/local.repo
yum makecache
yum repolist

  结果应该跟我一样:
pAbF.png
  我们虽然把本地yum挂载好了但是每次开机并不会为我们自动挂载,我们需要把自动挂载写进去,同时还要赋予执行权限:

echo 'mount /dev/cdrom /mnt' >>/etc/rc.local
chmod +x /etc/rc.d/rc.local

  赋予权限是因为在/etc/rc.local文件里面说了要赋予执行权限:
pzdJ.png

安装时间同步服务

  现在起每一步操作都可以看着官网文档,这样以后不管装什么版本都可以去照着官方文档走了,官方文档在文章的一开始也说了怎么下载。
控制节点:

vim /etc/chrony.conf
修改26行:allow 10/24
systemctl restart chronyd

  官网说要修改一个上游的ntp地址,这里不需要设置,因为默认是和centos的官方同步的,只需要修改第26行需要同步的网段即可,配置内容如下:
p4eA.png
  之后再保存重启即可。之前allow没有开启的时候是客户端,现在是服务端,查看端口就能看到123端口是存活的:

netstat -luntp

  修改好之后如下图所示
p5fh.png
计算节点:
  刚才的控制节点是服务器端,那么计算节点就是客户端,所以计算节点需要修改的地方就是最前面而不是allow那里,修改内容为:

vim /etc/chrony.conf
修改第3行为
server 10.0.0.11 iburst
systemctl restart chronyd

  修改之后为:
pYak.png
  最后验证就是同时输入date,返回的结果一样就行了。

安装OpenStack基础包

  这里决定了你要装的OpenStack版本。有A、B、C、D以此类推,现在企业用的最多的就是M版本。最新版有Q、O、P等等,最开始的ABC三个版本都是编译安装,装一个月才能装好,稳定版本是从F、G开始的,有些老公司现在依然采用的是G版本。版本是每半年推出一次。想去安装以前的源可以点我去下载,官方文档中说如果你是红帽操作系统那么还需要注册才能用,而centos不需要,现在需要在两台主机上都安装OpenStack的包和SELinux,OpenStack的包比较快,SELinux比较慢,稍等片刻。

yum install python-openstackclient openstack-selinux -y

  到现在为止,基础的包就装好了,现在起和计算节点没有任何关系了,在xshell里面把计算节点先关闭掉。只在controller控制节点里面安装就行了。

安装mariadb(轻量数据库)

yum install mariadb mariadb-server python2-PyMySQL -y

  注意这里有一个包是pyMySQL,因为OpenStack是python的这个pymysql是用来连接数据库的,跟我们学习爬虫时是一样的。装好之后对其进行配置,创建一个配置文件,然后启动并设置为开机自启动:

echo '[mysqld]
bind-address = 10.0.0.11
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8'  >/etc/my.cnf.d/openstack.cnf

systemctl start mariadb
systemctl enable mariadb

  上面命令直接复制粘贴就可以了,做完这些之后要记得把数据库安全初始化:

mysql_secure_installation

  设置方法参见下图:
p9Ki.png

安装rabbitmq(消息队列)

yum install rabbitmq-server -y
systemctl start rabbitmq-server.service 
systemctl enable rabbitmq-server.service

  给rabbitmq添加OpenStack用户

rabbitmqctl add_user openstack RABBIT_PASS
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

  上面用户创建的时候那个RABBIT_PASS是密码,这个密码是OpenStack密码本里面的密码,密码本就是官方文档最开始的那个配置,执行之后会输入Creating user "openstack" ...就是说创建好了,然后第二步是给权限,.*一共有三个,分别是配置权限、读权限、写权限。返回结果是Setting permissions for user "openstack" in vhost "/" ...

安装memcached缓存服务

  再安装一个缓存服务,用来缓存令牌,用的是memcached缓存token。

yum install memcached python-memcached -y
sed -i 's#127.0.0.1#10.0.0.11#g' /etc/sysconfig/memcached
systemctl start memcached.service
systemctl enable memcached.service

  安装完之后直接启动是可以启动起来的,但是启动了之后监听的是127.0.0.1的地址,也就是说只能自己用这个地址而OpenStack是一个SOA架构,要让10.0.0.网段都可以使用才行,如果你直接复制粘贴上面的命令就会自动给你改掉,所以你不需要修改,直接启动并设置为开机自启动就行了,下面看一下/etc/sysconfig/memcached配置文件的内容:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1"

  第一个行是监听端口,第二行名称,第三行指最大连接数,第四行指其在内存中占用的空间,64Mb,末行就是监听的地址了。
  最后只需要大检查一下,如果你在控制节点输出的和我一样,主要看ip和端口,都有的话就证明本节是没有问题的,后续才能接着做,记得把服务都要设置开机自启动,否则下次开机再检查时又没有了:

netstat -luntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 10.0.0.11:11211         0.0.0.0:*               LISTEN      3084/memcached      
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1003/sshd           
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      2323/beam.smp       
tcp        0      0 10.0.0.11:3306          0.0.0.0:*               LISTEN      2141/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1003/sshd           
tcp6       0      0 :::5672                 :::*                    LISTEN      2323/beam.smp       
udp        0      0 10.0.0.11:11211         0.0.0.0:*                           3084/memcached      
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1716/chronyd        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           1716/chronyd        
udp6       0      0 ::1:323                 :::*                                1716/chronyd     
最后修改:2020 年 06 月 16 日 06 : 34 PM
请俺喝杯咖啡呗