1.主机配置
关闭防火墙
# 关闭防火墙
systemctl stop firewalld
# 开机禁止启动
systemctl disable firewalld
关闭selinux
vi /etc/sysconfig/selinux
在第7行设置
SELINUX=disabled
setenforce 0 # 临时生效,如果忘记设置,后续Httpd服务会因为权限问题无法启动
修改主机名
hostnamectl set-hostname controller
关闭NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
配置阿里源
yum -y install wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
配置时间同步
yum -y install ntpdate
ntpdate ntp1.aliyun.com
配置主机名映射
vi /etc/hosts
192.168.64.104 controller
2.安装
安装Rdo
依赖
yum install -y https://rdoproject.org/repos/rdo-release.rpm
安装packstack
yum install -y openstack-packstack
配置rdo-release源为阿里源
vi /etc/yum.repos.d/rdo-release.repo
# 打开baseurl 并注释掉mirrorlist
[openstack-train]
name=OpenStack Train Repository
baseurl=http://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-train/
# mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=cloud-openstack-train
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
生成应答文件
packstack --gen-answer-file=/root/test-answer.ini
修改应答文件
CONFIG_DEFAULT_PASSWORD=123456
CONFIG_MANILA_INSTALL=n
CONFIG_NOVA_INSTALL=y
CONFIG_NEUTRON_INSTALL=y
CONFIG_HORIZON_INSTALL=y
CONFIG_SWIFT_INSTALL=n
CONFIG_CEILOMETER_INSTALL=n
CONFIG_AODH_INSTALL=n
CONFIG_PANKO_INSTALL=n
CONFIG_SAHARA_INSTALL=n
CONFIG_HEAT_INSTALL=n
CONFIG_MAGNUM_INSTALL=n
CONFIG_TROVE_INSTALL=n
CONFIG_IRONIC_INSTALL=n
CONFIG_CLIENT_INSTALL=y
CONFIG_DEBUG_MODE=n
CONFIG_CONTROLLER_HOST=9.111.x.x 这个就是controller节点的地址,一般就是主节点的地址,主节点意思就是选择一个资源比较好的节点充当主节点
CONFIG_COMPUTE_HOSTS=9.111.x.x, 9.111.x.x 这个是compute节点的地址,一般就是除了主节点剩下的地址,如果你只有两台,那么就两台节点地址都写上,用逗号隔开
CONFIG_NETWORK_HOSTS=9.111.x.x 这个是network节点的地址,一般就是主节点的地址
CONFIG_VMWARE_BACKEND=n
CONFIG_STORAGE_HOST=9.111.x.x
CONFIG_SAHARA_HOST=9.111.x.x 这个和上面那个注释写的不支持了,所以就别管
CONFIG_MARIADB_HOST=9.111.x.x 这个就是openstack的数据库的地址,一般就是主节点的地址
CONFIG_MARIADB_USER=root openstack数据库的用户名
CONFIG_MARIADB_PW=xxx openstack数据库的密码
CONFIG_KEYSTONE_DB_PW=xxx 这个密码就整个统一的密码
CONFIG_KEYSTONE_ADMIN_USERNAME=admin 这个是安装之后dashboard的登录名,建议不改
CONFIG_KEYSTONE_ADMIN_PW=xxx 这个是安装之后dashboard的登录密码,改成统一的密码
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat 这块加
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
CONFIG_NEUTRON_L2_AGENT=openvswitch
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex # 此处的physnet1命名会和稍后的网络配置有关。
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 #将宿主机网卡和openstack服务网卡桥接
CONFIG_PROVISION_DEMO=n 安装演示demo. 不建议,需要连接到github.占用磁盘空间
安装openstack
此过程会比较慢,失败可以重试
packstack --answer-file=/root/test-answer.ini
-
问题一
ERROR : Failed to run remote script, stdout:stderr: Warning: Permanently added '10.0.1.221' (ECDSA) to the list of known hosts.+ trap t ERR+ facter -pfacter: error while loading shared libraries: leatherman_curl.so.1.3.0: cannot open shared object file: No such file or directory++ t++ exit 127
解决:leatherman版本高,需要降低到1.3.0
yum downgrade leatherman
-
问题二
ERROR : Error appeared during Puppet run: 10.0.1.221_controller.ppError: Execution of '/usr/bin/yum -d 0 -e 0 -y install openstack-keystone' returned 1: Error: Package: python2-qpid-proton-0.26.0-2.el7.x86_64 (openstack-train)You will find full trace in log /var/tmp/packstack/20211217-144811-4zhqhW/manifests/10.0.1.221_controller.pp.log
解决:python2-qpid-proton-0.26.0-2.el7.x86_64 这个rpm包找不到合适的。在阿里开源社区下载
wget https://mirrors.aliyun.com/centos/7.9.2009/opstools/x86_64/perfmon/python2-qpid-proton-0.26.0-2.el7.x86_64.rpm yum -y localinstall python2-qpid-proton-0.26.0-2.el7.x86_64.rpm
-
问题三
ERROR : Error appeared during Puppet run: 192.168.3.68_controller.pp Error: Systemd start for httpd failed! You will find full trace in log /var/tmp/packstack/20240131-095747-Td_9m6/manifests/192.168.3.68_controller.pp.log
selinux或者防火墙没关闭导致
systemctl stop firewalld setenforce 0
查看,出现successfully则表示安装成功
**** Installation completed successfully ******
Additional information:
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.3.68. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.3.68/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* The installation log file is available at: /var/tmp/packstack/20240131-101339-N0U1GR/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20240131-101339-N0U1GR/manifests
3.网络以及镜像配置
命令行操作需要权限
source keystonerc_admin
下载cirros-0.5.0-x86_64-disk.img测试镜像。并上传至contorller节点。
cirros镜像是一个小的测试镜像。用于测试openstack部署。
wget https://download.cirros-cloud.net/0.3.0/cirros-0.3.0-x86_64-disk.img --no-check-certificate
可以通过Dashboard上传或者上传到服务器后采用命令行加载
openstack image create cirros-0.3.0-x86_64-disk --file /root/images/cirros-0.3.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public
配置外网
点击管理员-->网络 --> 网络,创建网络
创建子网
网关IP不要冲突,不填会随机生成
配置内网
选择项目 -->网络 -->网络 创建网络
不同的项目可以自由创建
可以随意创建不同的网段
整体网络
配置路由
让不同的网段可以连接起来
选择项目 -->网络 --> 路由,选择新建路由
此处选择外部网络,将路由和外部网络连接起来,后续跟别的网络连同,只需要添加接口即可
点击上图的route,选择接口,点击新增接口
在新增接口中,选择子网,也就是内部网络。ip填写为之前创建内部网络的子网网关ip。
设置安全组
此处为了演示,在defaut安全组中添加。实际生产环境,建议新建安全组
。
删除之前的两个default的入口规则,重新添加两个规则。规则选择其他协议。ip协议填写-1
添加2个协议,一个是入口,一个出口
4.创建实例
选择项目 --> 实例 --> 创建实例
实例名称随意创建
设置源
实例类型选择最小,测试而已
选择网络
然后点击创建实例
即可