openstack一遍过教程

123456
296
2025-04-16

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 compute

ping一下看看能不能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

动物装饰