1.创建两台虚拟机
需要两台最小化centos虚拟机
先创建一台,创建好之后再克隆一个即可




按照图片中设置虚拟机配置
2核4g,iso镜像一定要选上
再创建一张网卡,一张仅主机一张net


进虚拟机上下选择第一个安装


如图点进去选择一下



设置root密码

等待几分钟,安装完成点击右下角重启

试一下能不能登入进去,root,密码

关机 然后 虚拟机设置 - 克隆




2.配置两台虚拟机基础环境
记一下自己的仅主机模式的ip网段

进两台虚拟机改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
如图更改两处,添加两处,ip地址为自己的仅主机模式ip网段加自己创主机号
这里以192.168.68.17和192.168.68.10为例,具体得看自己的ip

两台虚拟机都得设置

改完之后重启网卡服务
service network restart
这里如果是systemctl restart network没用
查看一下ip有没有更改成功,然后用远程连接工具连接


添加本地yum和openstack yum仓库
在controller里配置,然后用ftp传到compute里
rm -rf /etc/yum.repos.d/*
mkdir /opt/centos
mount /dev/cdrom /opt/centos/
vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
保存退出yum clean all && yum repolist
查看有没有换成功
设置开机自动挂载
vi /etc/fstab
输入到最后一行保存退出
/dev/sr0 /opt/centos iso9660 defaults 0 0下载上传下载工具
yum -y install lrzsz
rz
把openstack包和cirros镜像一起传上去

tar -xf openstack-train.tar.gz
mv openstack /opt
vi /etc/yum.repos.d/local.repo
后面加上
[openstack]
name=openstack
baseurl=file:///opt/openstack
gpgcheck=0
保存退出
yum clean all && yum repolist在controller里输入,下面的ip改成自己的ip
hostnamectl set-hostname controller
bash
vi /etc/hosts
添加到最后
192.168.68.17 controller
192.168.68.10 compute在compute里输入,下面的ip改成自己的ip
hostnamectl set-hostname compute
bash
vi /etc/hosts
添加到最后
192.168.68.17 controller
192.168.68.10 computeping一下看看能不能ping通
ping controller
ping compute
两台设备 关闭防火墙和selinux
setenforce 0
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
保存退出
systemctl stop firewalld
systemctl disable firewalld
controller配置
yum -y install vsftpd
systemctl start vsftpd && systemctl enable vsftpd
vi /etc/vsftpd/vsftpd.conf
在最后一行添加
anon_root=/opt
重启服务
systemctl restart vsftpd
compute配置
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/ftp.repo
[local]
name=local
baseurl=ftp://controller/centos
gpgcheck=0
[openstack]
name=openstack
baseurl=ftp://controller/openstack
gpgcheck=0
保存退出
yum clean all && yum repolist两边都得设置 时间同步&ssh
controller和compute都得设置
yum remove -y NetworkManager firewalld
yum upgrade -y
rm -rf /etc/yum.repos.d/C*
yum clean all && yum repolist
yum install python-openstackclient openstack-selinux openstack-utils crudini expect chrony lsof net-tools vim wget bash-completion bind -y
controller
vi /etc/chrony.conf
第3-6行用#注释
第七行添加 server controller iburst
下面两行添加到最后
allow controller的ip
allow 192.168.68.0/24
local stratum 10
systemctl restart chronyd && systemctl enable chronyd
compute
vi /etc/chrony.conf
第3-6行用#注释
第七行添加 server controller iburst
controller
ssh-keygen 回车 回车
ssh-copy-id compute
yes 输compute的密码
ssh compute
看能否直接不输密码登录进去
exit
compute
ssh-keygen 回车 回车
ssh-copy-id controller
yes 输controller的密码
ssh controller
看能否直接不输密码登录进去
exit
两台机子输入
init 6
(这个代码的意思就是重启,要等一会)
运行openstack脚本
controller里配置
yum -y install openstack-shell
sed -ri 's/(^#)(.*)/\2/' variable.sh
sed -i 's/_DBPASS=/_DBPASS=000000/g' variable.sh
sed -i 's/_PASS=/_PASS=000000/' variable.sh
vi variable.sh
如图配置


用ip a查看另一张网卡名字


保存退出
compute配置
yum -y install openstack-shell
rm -rf variable.sh
一条一跳跑完再输下一条,不要同时,注意看有无报错
controller配置
scp variable.sh root@compute:/root
cd /usr/local/bin
sh openstack-controller-mysql.sh
sh openstack-controller-keystone.sh
sh openstack-controller-glance.sh
两台设备保存快照
sh openstack-controller-nova.sh
compute配置
cd /usr/local/bin
sh openstack-compute-nova.sh
controller配置
sh openstack-controller-neutron.sh
compute配置
sh openstack-compute-neutron.sh
controller配置
sh openstack-controller-dashboard.sh
source admin-openrc
openstack flavor create --vcpus 1 --ram 512 --disk 5 test
openstack network create inter
openstack subnet create --allocation-pool start=192.168.10.100,end=192.168.10.199 --gateway 192.168.10.254 --network inter --subnet-range 192.168.10.0/24 in-sub
openstack image create --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --property os_version=1.1.1 cirros
测试能否登录创建实例
浏览器输入controller的IP地址/dashboard
例如http://192.168.68.17/dashboard
