centos安装部署OpenStack train版

一、通过Kolla安装部署OpenStack train版

1.通过Kolla安装部署OpenStack train版参考来源

https://www.icode9.com/content-4-838775.html

2.关闭防火墙 和 selinux

关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

在这里插入图片描述
关闭selinux

vi /etc/selinux/config
SELINUX=disabled

在这里插入图片描述
在这里插入图片描述
需重启系统后生效

setenforce 0

命令可将当前selinux设置为permissive,重启系统后失效
在这里插入图片描述

3.设置 dns 和 主机名查询静态表

设置dns服务器地址

cat >> /etc/resolv.conf << EOF
nameserver	8.8.8.8
nameserver 8.8.4.4
EOF

在这里插入图片描述
hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件
设置本机IP与域名

cat >> /etc/hosts << EOF
192.168.162.131	openstack
EOF

在这里插入图片描述
设置主机名

cat >> /etc/hostname << EOF
openstack
EOF
hostnamectl set-hostname openstack

在这里插入图片描述

4.设置网卡,配置网卡信息

vi /etc/sysconfig/network-scripts/ifcfg-ens33

//修改以下几行,如果不存在则添加

BOOTPROTO=none  		//将dhcp改为none,使自动获取改为静态获取
ONBOOT=yes				//启动用该网卡
IPADDR=192.168.162.131  //设置IPv4地址
NETMASK=255.255.255.0  //设置子网掩码
GATEWAY=192.168.162.2  //设置默认网关

https://blog.csdn.net/weixin_46048542/article/details/127002273

vi /etc/sysconfig/network-scripts/ifcfg-ens37

//修改以下几行,如果不存在则添加

TYPE=Ethernet
NAME=ens37
DEVICE=ens37 //如果是开启虚拟机后添加网卡,需要手动编辑以上三行
BOOTPROTO=none  //将dhcp改为none,使自动获取改为静态获取
ONBOOT=yes  //启用该网卡
systemctl restart network

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1systemctl restart network报错解决办法

service NetworkManager stop 关闭 NetworkManger 服务
chkconfig NetworkManager off 永久关闭 Manager网卡
service network restart 重启network网卡

在这里插入图片描述

5.安装基础包

1.下载epel源

yum -y install epel-release

在这里插入图片描述
在这里插入图片描述
2.下载 vim 和 net-tools

yum -y install vim net-tools

在这里插入图片描述
在这里插入图片描述
3.安装基础包

yum -y install python-devel libffi-devel gcc openssl-devel git python-pip

在这里插入图片描述
在这里插入图片描述
设置pip的下载源 阿里云

mkdir .pip
cat > .pip/pip.conf << EOF
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF

在这里插入图片描述
升级pip

pip install --upgrade pip

一般来说可以成功,但有时升级完后pip 使用时报错sys.stderr.write(f“ERROR: {exc}“)
可以尝试安装20.3.4版本

pip install --upgrade pip==20.3.4

或者找到对应版本的get-pip文件 手动升级。

wget https://bootstrap.pypa.io/2.7/get-pip.py
python get-pip.py 

在这里插入图片描述

6.生成ssh key,并给自己授权

ssh-keygen
ssh-copy-id root@ALLInOne-Kolla

在这里插入图片描述
一直按enter键
在这里插入图片描述
password为1234(随意)

7.Kolla介绍

Kolla是OpenStack下用于自动化部署的一个项目,它基于docker和ansible来实现,其中docker主要负责镜像制作和容器管理,ansible主要负责环境的部署和管理。

Kolla实际上分为两部分:
  Kolla部分提供了生产环境级别的镜像,涵盖了OpenStack用到的各个服务;Kolla为操作OpenStack云提供可生产的容器和部署工具。
  Kolla-ansible部分提供了自动化的部署。Kolla-Ansible在Docker容器中部署OpenStack服务和基础设施组件。

8. 安装ansible kolla-ansible

使用pip时可能有警告

pip uninstall -y urllib3
pip uninstall -y chardet
pip install requests

在这里插入图片描述
1.使用pip安装ansible,注意不要使用yum安装,否则会与kolla中的YAML包冲突。且ansible版本应为2.6-2.9

pip install ansible==2.9.0

在这里插入图片描述
在这里插入图片描述
2.pip安装kolla-ansible 同样需要指定版本,版本对应如下
https://releases.openstack.org/teams/kolla.html

pip install kolla-ansible==9.3.0

8.1pip install kolla-ansible==9.3.0报错

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pip install --ignore-installed requests

在这里插入图片描述

pip install dnspython==1.15

在这里插入图片描述

pip install python-ldap==3.0.0b1

在这里插入图片描述

 yum install openldap-devel

在这里插入图片描述

pip install kolla-ansible==9.3.0

在这里插入图片描述

pip install --ignore-installed kolla-ansible==9.3.0

在这里插入图片描述
在这里插入图片描述

9.进行基本OpenStack配置

1.复制配置文件到/etc/kolla/

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/

在这里插入图片描述
文件说明:all-in-one是安装单节点OpenStack的ansible自动安装配置文件;multinode是安装多节点OpenStack的ansible自动安装配置文件;globals.yml是OpenStack部署的自定义配置文件;passwords.yml是OpenStack中各个服务的密码文件。

生成密码到passwords.yml 包括dashboard认证密码,grafana登录密码等

kolla-genpwd

在这里插入图片描述
这些密码是即将设置到OpenStack中的,安装部署OpenStack前可以修改,但是OpenStack安装完成后,不要再修改。

/etc/kolla/passwords.yml

在这里插入图片描述
在这里插入图片描述
2.添加一块新硬盘,设置为lvm vg卷组 作为cinder 卷

yum -y  install lvm2 

在这里插入图片描述
创建一个PV卷

pvcreate /dev/sdb

在这里插入图片描述
创建磁盘,虚拟机重启
在这里插入图片描述
创建卷组 卷组名cinder-volumes

vgcreate cinder-volumes /dev/sdb

在这里插入图片描述
3.编辑golbals配置文件。(只设置安装基本的OpenStack组件。)

vim /etc/kolla/globals.yml 
# Valid options are ['centos', 'debian', 'rhel', 'ubuntu'] 系统类型
kolla_base_distro: "centos"

# Valid options are [ binary, source ]	安装方式
kolla_install_type: "binary"

# Do not override this unless you know what you are doing. 安装版本
openstack_release: "train"

# Location of configuration overrides	默认配置文件位置
#node_custom_config: "/etc/kolla/config"

# OpenStack内部管理网络地址。
#如果设置了高可用haproxy,此处为VIP(虚拟漂移IP)。使用ALLinOne配置,直接将ens33IP 写入即可
kolla_internal_vip_address: "192.168.162.131"

# OpenStack内部管理网络地址的网卡接口
network_interface: "ens33"

# 网卡应该在没有IP地址的情况下处于活动状态。
neutron_external_interface: "ens37"

# 关闭高可用
enable_haproxy: "no"

# 设置块存储cinder。默认使用lvm时块存储名称cinder-volumes
enable_cinder: "yes"
enable_cinder_backup: "yes"
enable_cinder_backend_lvm: "yes"
#cinder_volume_group: "cinder-volumes"

# Valid options are [ qemu, kvm, vmware, xenapi ]
# 如果设置虚拟机开启了CPU虚拟化 或者 宿主机支持CPU虚拟化且开启。那么可以使用kvm。 如果未启用CPU虚拟机,选择qemu。
nova_compute_virt_type: "qemu"

10.安装部署

1.bootstrap-server安装OpenStack所需的依赖包。包括docker等

kolla-ansible bootstrap-servers -i /etc/kolla/all-in-one 

在这里插入图片描述
在这里插入图片描述
有的直接成功
报错解决方法
yum upgrade -y
执行完之后
kolla-ansible bootstrap-servers -i /etc/kolla/all-in-one
在这里插入图片描述
在这里插入图片描述
设置docker 容器镜像加速,阿里云

cat >> /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://4606dfbh.mirror.aliyuncs.com"]
}
EOF

在这里插入图片描述
设置docker volume卷挂载方式 Share 方便增加磁盘,不用重启docker

mkdir -p /etc/systemd/system/docker.service.d
cat >> /etc/systemd/system/docker.service.d/kolla.conf << EOF
[Service]
MountFlags=shared
EOF

在这里插入图片描述
重启docker

systemctl daemon-reload
systemctl restart docker

在这里插入图片描述
2.pull 拉取docker镜像。有时候出错停止,重新执行就好了。

kolla-ansible pull -i /etc/kolla/all-in-one

十几分钟
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.检测安装。

kolla-ansible prechecks -i /etc/kolla/all-in-one

在这里插入图片描述
在这里插入图片描述
4.部署安装 不进行pull操作,直接deploy也是可以的。deploy会先把镜像下载到本地,然后设置配置文件,再运行容器。

kolla-ansible deploy -i /etc/kolla/all-in-one

在这里插入图片描述
在这里插入图片描述
5.验证部署,并且生成/etc/kolla/admin-openrc.sh认证文件

kolla-ansible post-deploy -i /etc/kolla/all-in-one

在这里插入图片描述
在这里插入图片描述

10.1部署安装kolla-ansible deploy -i /etc/kolla/all-in-one报错

按照https://www.icode9.com/content-4-838775.html
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
是IP地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.备注: docker 相关

kolla安装OpenStack各个组件docker,容器使用的host网络模式,该模式下的Docker 容器会和host宿主机共享同一个网络namespace,故Docker Container可以和宿主机一样,使用宿主机的eth0,实现和外界的通信。换言之,Docker Container的IP地址即为宿主机 eth0的IP地址。
1.各个组件的日志文件.多个组件共用一个docker volume

ls /var/log/kolla/

在这里插入图片描述
2.各个组件的配置文件

ls /etc/kolla/

可以修改配置文件,然后重启对应的docker 容器
在这里插入图片描述
3.各个组件挂载的数据卷

docker volume ls

在这里插入图片描述

二、初始化OpenStack网络、镜像等,创建虚拟机。

1.安装OpenStack命令行

先安装版本不匹配的组件

pip install -I ipaddress

在这里插入图片描述
安装命令行工具

pip install python-openstackclient

在这里插入图片描述
在这里插入图片描述

2.初始化OpenStack 如网络 安全组 实例类型等。通过init-runonce文件完成

编辑init-runonce文件 去除 cirros镜像下载相关(下载速度特别慢)
设置外部网络相关

vim /usr/share/kolla-ansible/init-runonce
# This EXT_NET_CIDR is your public network,that you want to connect to the internet via.
# 与外部连接网络 相关设置
ENABLE_EXT_NET=${ENABLE_EXT_NET:-1}
EXT_NET_CIDR=${EXT_NET_CIDR:-'192.168.199.0/24'}
EXT_NET_RANGE=${EXT_NET_RANGE:-'start=192.168.199.20,end=192.168.199.79'}
EXT_NET_GATEWAY=${EXT_NET_GATEWAY:-'192.168.199.1'}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加载认证

source /etc/kolla/admin-openrc.sh

在这里插入图片描述
初始化OpenStack。(部署完成未操作过OpenStack,不然可能有奇怪的错误)(不进行这一步,自己手动创建网络也是可以的)

/usr/share/kolla-ansible/init-runonce

在这里插入图片描述
执行命令可能会报错ImportError: No module named queue
replace “import queue” with:
from multiprocessing import Queue as queue
将相应报错文件 将import queue改为

/usr/lib/python2.7/site-packages/openstack/utils.py
/usr/lib/python2.7/site-packages/openstack/cloud/openstackcloud.py
from multiprocessing import Queue as queue

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1/usr/share/kolla-ansible/init-runonce报错(不知道)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.镜像下载地址

https://download.cirros-cloud.net/0.4.0/
在这里插入图片描述
上传
在这里插入图片描述
来到这个目录
在这里插入图片描述

4.上传镜像

glance help image-create

在这里插入图片描述
解决方法

pip install python-glanceclient

在这里插入图片描述
在这里插入图片描述

glance help image-create

在这里插入图片描述

glance image-create --name cirrors --min-disk 1 --visibility public --disk-format qcow2 --container-format bare --file cirros-0.4.0-x86_64-disk.img --progress

在这里插入图片描述
报错

source /etc/kolla/admin-openrc.sh

在这里插入图片描述
再次执行

 glance image-create --name cirrors --min-disk 1 --visibility public --disk-format qcow2 --container-format bare --file cirros-0.4.0-x86_64-disk.img --progress

在这里插入图片描述
在这里插入图片描述
弄好查看镜像

glance image-list

在这里插入图片描述
这里我上传了两次,将上面的cirrors改为cirros
下面以cirros为例

5.安装虚拟机

第一种

vi /usr/share/kolla-ansible/init-runonce

在这里插入图片描述
在这里插入图片描述

openstack server create --image cirros --flavor m1.tiny --key-name mykey --network demo-net demo1

或者
在这里插入图片描述
在这里插入图片描述

nova list

在这里插入图片描述
没有继续执行这个命令
在这里插入图片描述
在这里插入图片描述

nova get-vnc-console demo1 novnc

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.You must provide a username via either --os-username or env[OS_USERNAME]

来源:
https://blog.csdn.net/qq_28513801/article/details/90312252
重新进入报错
请添加图片描述
我们便直接把我们的token给更新一下就可以了

[root images]# source /etc/keystone/admin-openrc 

那么我们可以查看一下我们的admin-openrc这个文件


[root images]# vi /etc/keystone/admin-openrc 
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=000000
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
~

那么从这里我们可看出

这个admin-openrc文件中包含了我们发送请求所需的各种信息。

所以每次我们只需要source一下我们的该环境变量就可以啦
因为我的在root下面
请添加图片描述
请添加图片描述

三、glance help image-create部分选项含义

1.来源

https://blog.csdn.net/weixin_43650731/article/details/102400486

2.含义

–architecture 指定操作系统架构
–protected 如果为True,镜像将不可删除
–name 指定镜像名称
–min-disk 启动镜像所需的最小的磁盘空间(以GB为单位)
–min-ram 启动镜像所需的最小内存大小(以MB为单位)
–id 镜像的ID
–owner 镜像的所有者
–disk-format 指定镜像的格式(ami, ari, aki, vhd,vmdk, raw, qcow2, vdi, iso)
–file 指定镜像文件
–container 指定容器格式(ami, ari, aki,bare, ovf, ova, docker)
----visibility 镜像的可见范围(public,private)或?? --public & --private & --is-public=True
–progress 进度显示上传进度条

3.glance相关命令

原文链接:https://blog.csdn.net/wzlsunice88/article/details/79499152

glance help| grep image 
1. 创建镜像 
glance image-create --name centos5.8_x86_64 --disk-format=qcow2 --container-format=bare --is-public=True --file=/tmp/centos5.8_x86_64_growroot_1.2_20131231.qcow2
2. 上传image
glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true container_format=ovf disk_format=qcow2 < /root/precise-server-cloudimg-amd64-disk1.img
3. 列出当前可用镜像
glance image-list
4.列出镜像的详细信息
glance image-show 0c47db9c-5f74-4544-8ada-0894c1d2c20c
5. 删除镜像
nova image-delete cirros
6.设置镜像参数
openstack image set --property hw_cpu_cores=8 --property hw_cpu_threads=2 --property hw_cpu_sockets=2 --property hw_disk_bus=ide 0215d732-7da9-444e-a7b5-798d38c769b5
如果不能正常启动可以设置--property hw_disk_bus=ide 参数试一试

7. 把快照转为镜像的命令如下:

镜像默认存放于控制节点 /var/lib/glance/images/228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b。(根据自己的环境有所不同)
先进入上述目录
glance image-create --name "CentOS 6.7" --file 228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b --disk-format qcow2 --container-format bare --visibility public --progress   
glance image-create --name "cirros-raw" --file cirros-0.3.3-x86_64-disk.img --disk-format raw --container-format bare --visibility public --progress
7. 镜像下载命令
glance image-download --file /root/centos7-2.qcow2  c71568de-e37f-49cb-8ab4-01bd0cbbded8
8. 解决windows时间不同步的问题。
glance image-update --property os_type="windows" <IMAGE-ID>
9. 如果是vmware的虚拟机文件
A  如果是单个vmdk文件可以采用如下的步骤:
qemu-img convert -O qcow2 Kali-Linux-2.0.0-vm-amd64-disk1.vmdk kali.qcow2 -o compat=0.10
glance image-create --name kali --disk-format=qcow2 --container-format=bare --visibility public  --file=kali.qcow2
生成镜像后,再生成虚拟机
B 如果是OVA文件可以先用命令
tar -xvf VS7000_VM_04.01.03.ova  出现vmdk文件
再使用上述的命令,如果出现不能启动的情况,可以入如下的参数:--property hw_disk_bus=ide
glance image-create --name kali2018-2new --disk-format=qcow2 --container-format=bare --visibility public --property hw_disk_bus=ide --file=kali.qcow2
如果是多个虚拟机文件如 OWASP Broken Web Apps-s001.vmdk OWASP Broken Web Apps-s002.vmdk ......可以先用vmware workstation软件导出为OVF文件。
如果菜单出现不能导出,编辑要导出的虚拟机或者升级虚拟机进行调整即可。
导出OVF文件的目录有vmdk文件,按照上面的命令进行操作即可

四、swift的安装过程

1.总步骤

1.创建3块硬盘,挂载到虚拟机中
2.分区
# <WARNING ALL DATA ON DISK will be LOST!>
index=0
for d in vdc vdd vde; do
    parted /dev/${d} -s -- mklabel gpt mkpart KOLLA_SWIFT_DATA 1 -1
    sudo mkfs.xfs -f -L d${index} /dev/${d}1
    (( index++ ))
done
3.
STORAGE_NODES=(192.168.10.5) 本机IP
KOLLA_SWIFT_BASE_IMAGE="kolla/centos-source-swift-base:train"
mkdir -p /etc/kolla/config/swift

4.
docker run   --rm   -v /etc/kolla/config/swift/:/etc/kolla/config/swift/   $KOLLA_SWIFT_BASE_IMAGE   swift-ring-builder     /etc/kolla/config/swift/object.builder create 10 3 1
for node in ${STORAGE_NODES[@]}; do     for i in {0..2}; do       docker run         --rm         -v /etc/kolla/config/swift/:/etc/kolla/config/swift/         $KOLLA_SWIFT_BASE_IMAGE         swift-ring-builder           /etc/kolla/config/swift/object.builder add r1z1-${node}:6000/d${i} 1;     done; done
docker run   --rm   -v /etc/kolla/config/swift/:/etc/kolla/config/swift/   $KOLLA_SWIFT_BASE_IMAGE   swift-ring-builder     /etc/kolla/config/swift/account.builder create 10 3 1
for node in ${STORAGE_NODES[@]}; do     for i in {0..2}; do       docker run         --rm         -v /etc/kolla/config/swift/:/etc/kolla/config/swift/         $KOLLA_SWIFT_BASE_IMAGE         swift-ring-builder           /etc/kolla/config/swift/account.builder add r1z1-${node}:6001/d${i} 1;     done; done
docker run   --rm   -v /etc/kolla/config/swift/:/etc/kolla/config/swift/   $KOLLA_SWIFT_BASE_IMAGE   swift-ring-builder     /etc/kolla/config/swift/container.builder create 10 3 1
for node in ${STORAGE_NODES[@]}; do     for i in {0..2}; do       docker run         --rm         -v /etc/kolla/config/swift/:/etc/kolla/config/swift/         $KOLLA_SWIFT_BASE_IMAGE         swift-ring-builder           /etc/kolla/config/swift/container.builder add r1z1-${node}:6002/d${i} 1;     done; done

5.
for ring in object account container; do   docker run     --rm     -v /etc/kolla/config/swift/:/etc/kolla/config/swift/     $KOLLA_SWIFT_BASE_IMAGE     swift-ring-builder       /etc/kolla/config/swift/${ring}.builder rebalance; done

6.修改/etc/kolla/global.yaml
enable_swift: "yes"

kolla-ansible deploy -i all-in-one 2>&1 1>log1 &

7.pip install python-swiftclient

8.swift list

2.安装步骤+截图

1.创建3块硬盘,挂载到虚拟机中

lsblk

在这里插入图片描述
2.分区

# <WARNING ALL DATA ON DISK will be LOST!>
index=0
for d in sdc sdd sde; do
    parted /dev/${d} -s -- mklabel gpt mkpart KOLLA_SWIFT_DATA 1 -1
    sudo mkfs.xfs -f -L d${index} /dev/${d}1
    (( index++ ))
done

在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
5.
在这里插入图片描述
6.
在这里插入图片描述
在这里插入图片描述
7.

kolla-ansible prechecks -i /etc/kolla/all-in-one
kolla-ansible deploy -i /etc/kolla/all-in-one

在这里插入图片描述
在这里插入图片描述
8.

pip install python-swiftclient

在这里插入图片描述
9.
在这里插入图片描述
10.创建容器
找到admin-openrc.sh所在位置
在这里插入图片描述
刷新系统变量

source /root/admin-openrc.sh

在这里插入图片描述
创建容器
swift post rq1
swift list #查看容器
在这里插入图片描述

3.swift命令介绍

内容来源
https://blog.csdn.net/weixin_46329906/article/details/112132320
搭建OpenStack Swift对象存储
条件:在搭建好的OpenStack基本服务基础上

##安装swift服务
iaas-install-swift-controller.sh
iaas-install-swift-compute.sh

##刷新系统变量,否则会报错
source /etc/keystone/admin-openrc.sh

查看swift状态

swift stat

创建容器

swift post rq1
swift list	#查看容器

容器操作

swift upload rq1 file1	#上传文件到容器
swift list rq1			#查看容器内容

swift delete rq1 file1	#删除容器内的文件
swift list rq1			#查看容器内容,没有表示删除成功

swift delete rq1		#删除容器
swift list 				#查看容器,没有表示删除成功
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值