私有云配置(个人笔记)

2020年05月01日 99 字 Linux

要有Linux基础

空白分区划分

CentOS7的安装与CentOS6.5的安装有明显的区别在CentOS7安装过程中, 设置分区都需要一个挂载点, 这样一来就无法创建两个空白的磁盘分区作为cinder服务和swift服务的存储磁盘了

所以我们应该在系统安装过程中留下足够的磁盘大小, 系统安装完成后, 使用命令parted划分新分区, 然后使用mkfs.xfs进行文件系统格式化, 完成空白分区的划分 “强烈建议使用fdisk”

parted具体命令如下: 不建议使用

1
[root@compute ~]# parted /dev/md126

创建swift分区, 从702G到

1
2
[root@compute ~]# (parted) mkpart swift 702G 803G    803G                                                  
[root@compute ~]# mkfs.xfs /dev/md126p5

fdisk具体命令如下: 强烈建议使用

查看

1
[root@compute ~]# fdisk -l 

sda为硬盘号

1
[root@compute ~]# fdisk /dev/sda 

选择m n是创建 d是删除 w是保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit

配置网络 主机名 修改和添加

1
[root@controller]# vi /etc/sysconfig/network-scripts/ifcfg-enp*(具体的网口)文件

(1) controller节点 配置网络:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@controller]# 私网的ip地址
[root@controller]# device=enp8s0
[root@controller]# type=Ethernet
[root@controller]# onboot=yes
[root@controller]# nm_controlled=no
[root@controller]# bootroto=static
[root@controller]# ipaddr=192.168.88.131
[root@controller]# prefix=24
[root@controller]#
[root@controller]# 公网的ip地址
[root@controller]# device=enp9s0
[root@controller]# type=Ethernet
[root@controller]# onboot=yes
[root@controller]# nm_controlled=no
[root@controller]# bootroto=static
[root@controller]# ipaddr=192.168.200.10
[root@controller]# prefix=24

生效

1
[root@controller]# service network restart

查看

1
[root@controller]# ip a

配置主机名: 输入完成 按ctrl+d 退出 重新登陆

1
2
[root@controller]# hostnamectl set-hostname controller

(2) compute 节点 配置网络:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@controller]# 私网的ip地址
[root@controller]# device=enp8s0 //设备名称
[root@controller]# type=Ethernet
[root@controller]# onboot=yes
[root@controller]# nm_controlled=no
[root@controller]# bootroto=static
[root@controller]# ipaddr=192.168.100.20
[root@controller]# prefix=24
[root@controller]#
[root@controller]# 公网的ip地址
[root@controller]# device=enp9s0
[root@controller]# type=Ethernet
[root@controller]# onboot=yes
[root@controller]# nm_controlled=no
[root@controller]# bootroto=static
[root@controller]# ipaddr=192.168.200.20
[root@controller]# prefix=24

生效

1
[root@controller]# service network restart

查看

1
[root@controller]# ip a

配置主机名: 输入完成 按ctrl+d 退出 重新登陆

1
[root@controller]# hostnamectl set-hostname compute/controller

查看

1
[root@controller]# hostname

配置yum源

Controller和compute节点

(1)yum源备份

命令解释: 用来为文件或目录改名、或将文件或目录移入其它位置

1
[root@controller]# mv /etc/yum.repos.d/*  /opt/

(2)创建repo文件

controller 在/etc/yum.repos.d创建源文件

1
[root@controller]# vi contrller.repo   

配置本地file

1
2
3
4
5
6
7
8
9
10
[root@controller]# [centos]
[root@controller]# name=centos
[root@controller]# baseurl=file:///opt/centos
[root@controller]# gpgcheck=0
[root@controller]# enabled=1
[root@controller]# [iaas]
[root@controller]# name=iaas
[root@controller]# baseurl=file:///opt/iaas-repo
[root@controller]# gpgcheck=0
[root@controller]# enabled=1

查看

1
2
[root@controller]# yum repolist
[root@controller]# cat [文件名]

compute 在/etc/yum.repos.d创建centos.repo源文件

1
[root@controller]# vi compute.repo 

全部移走

1
[root@controller]# mv * /tmp

配置ftp

1
2
3
4
5
6
7
8
9
10
[root@controller]# [centos]
[root@controller]# name=centos
[root@controller]# baseurl=ftp://192.168.88.131/centos
[root@controller]# gpgcheck=0
[root@controller]# enabled=1
[root@controller]# [iaas]
[root@controller]# name=iaas
[root@controller]# baseurl=ftp://192.168.88.131/iaas-repo
[root@controller]# gpgcheck=0
[root@controller]# enabled=1

配置http

1
2
3
4
5
6
7
8
9
10
[root@controller]# [centos]
[root@controller]# name=centos
[root@controller]# baseurl=http://192.168.88.131/centos
[root@controller]# gpgcheck=0
[root@controller]# enabled=1
[root@controller]# [iaas]
[root@controller]# name=iaas
[root@controller]# baseurl=http://192.168.88.131/iaas-repo
[root@controller]# gpgcheck=0
[root@controller]# enabled=1

查看

1
2
[root@controller]# yum repolist
[root@controller]# cat [文件名]

挂载iso文件

挂载CentOS-7xxxx.iso

命令解释: mount挂载Linux系统外的文件, loop是mount用来加载loop设备的选项, 不是文件系统类型

1
[root@controller]# mount -o loop /home/sdq/CentOS-7-x86_64-DVD-2003.iso  /mnt

命令解释: 删除重来

1
[root@controller]# rm -rf /opt/centos/*

mkdir创建

1
[root@controller]# mkdir /opt/centos

查看

1
[root@controller]# df

意思是并将光盘内的数据拷贝到centos文件夹中, 数据有点多, 要等一会

1
[root@controller]# cp -rvf /mnt/* /opt/centos/

umount可卸除目前挂在Linux目录中的文件系统

1
[root@controller]# umount  /mnt/

挂载XianDian-IaaS-v2.4.iso

mount挂载Linux系统外的文件, loop是mount用来加载loop设备的选项, 不是文件系统类型

1
[root@controller]# mount -o loop /home/sdq/chinaskills_cloud_iaas.iso  /mnt

意思是并将光盘内的数据拷贝到opt文件夹中, 数据有点多, 要等一会

1
[root@controller]# cp -rvf /mnt/* /opt/

umount可卸除目前挂在Linux目录中的文件系统

1
[root@controller]# umount  /mnt/

搭建ftp服务器, 开启并设置自启

安装vsftpd 默认-y= yes

1
[root@controller ~]# yum install vsftpd –y

添加anon_root=/opt/

1
[root@controller ~]# vi /etc/vsftpd/vsftpd.conf

启动服务

1
[root@controller ~]# systemctl start vsftpd

查看

1
[root@controller]# yum repolist

在开机时启用服务

1
[root@controller ~]# systemctl enable vsftpd

搭建http服务器, 开启并设置自启

安装httpd 默认-y= yes

1
2
[root@controller ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@controller ~]# yum install httpd –y

/var/www/html改”/opt”

1
[root@controller ~]# vi /etc/httpd/conf/httpd.conf

启动服务

1
[root@controller ~]# systemctl start httpd

在开机时启用服务

1
[root@controller ~]# systemctl enable httpd

配置防火墙和Selinux

controller/compute都要

编辑selinux文件

1
2
3
[root@controller]# vi /etc/selinux/config 
[root@controller]# SELINUX=permissive
[root@controller selinux]# setenforce 0

查看

1
[root@controller]# getenforce 

关闭防火墙并设置开机不自启

1
2
[root@controller]# systemctl stop firewalld.service
[root@controller]# systemctl disable firewalld.service

查看

1
[root@controller]# systemctl status firewalld.service

清除缓存和验证yum源 controller/compute都要

1
2
[root@controller]# yum clean all
[root@controller]# yum repolist

编辑环境变量

controller和compute节点

1
[root@controller]# yum install iaas-xiandian -y

编辑文件/etc/xiandian/openrc.sh, 此文件是安装过程中的各项参数, 根据每项参数上一行的说明及服务器实际情况进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[root@controller]# HOST_IP=192.168.88.131
[root@controller]# HOST_PASS=000000
[root@controller]# HOST_NAME=controller
[root@controller]# HOST_IP_NODE=192.168.100.20
[root@controller]# HOST_PASS_NODE=000000
[root@controller]# HOST_NAME_NODE=compute
[root@controller]# network_segment_IP=192.168.100.0/24
[root@controller]# RABBIT_USER=openstack
[root@controller]# RABBIT_PASS=000000
[root@controller]# DB_PASS=000000
[root@controller]# DOMAIN_NAME=demo
[root@controller]# ADMIN_PASS=000000
[root@controller]# DEMO_PASS=000000
[root@controller]# KEYSTONE_DBPASS=000000
[root@controller]# GLANCE_DBPASS=000000
[root@controller]# GLANCE_PASS=000000
[root@controller]# NOVA_DBPASS=000000
[root@controller]# NOVA_PASS=000000
[root@controller]# NEUTRON_DBPASS=000000
[root@controller]# NEUTRON_PASS=000000
[root@controller]# METADATA_SECRET=000000
[root@controller]# INTERFACE_IP=192.168.88.131/192.168.100.20(controllerIP/computeIP)
[root@controller]# INTERFACE_NAME=enp9s0 (外部网络网卡名称)
[root@controller]# Physical_NAME=provider (外部网络适配器名称)
[root@controller]# minvlan=101 (vlan网络范围的第一个vlanID)
[root@controller]# maxvlan=200 (vlan网络范围的最后一个vlanID)
[root@controller]# CINDER_DBPASS=000000
[root@controller]# CINDER_PASS=000000
[root@controller]# BLOCK_DISK=md126p4 (空白分区)
[root@controller]# SWIFT_PASS=000000
[root@controller]# OBJECT_DISK=md126p5 (空白分区)
[root@controller]# STORAGE_LOCAL_NET_IP=192.168.100.20
[root@controller]# HEAT_DBPASS=000000
[root@controller]# HEAT_PASS=000000
[root@controller]# ZUN_DBPASS=000000
[root@controller]# ZUN_PASS=000000
[root@controller]# KURYR_DBPASS=000000
[root@controller]# KURYR_PASS=000000
[root@controller]# CEILOMETER_DBPASS=000000
[root@controller]# CEILOMETER_PASS=000000
[root@controller]# AODH_DBPASS=000000
[root@controller]# AODH_PASS=000000

通过脚本安装服务

执行脚本iaas-pre-host.sh进行安装

1
[root@controller ~]# iaas-pre-host.sh
1
[root@controller ~]# chronyc sources -v

通过脚本安装数据库服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-mysql.sh

通过脚本安装keystone服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-keystone.sh

通过脚本安装glance服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-glance.sh

上传镜像

首先下载(Wget)提供的系统镜像到本地, 本次以上传CentOS_7.5_x86_64镜像为例 安装Wget, 从Ftp服务器上下载镜像到本地

1
2
[root@controller]# source admin-openrc.sh
[root@controller]# glance image-create --name "CentOS7.5" --disk-format qcow2 --container-format bare --progress < /opt/images/CentOS_7.5_x86_64_XD.qcow2

安装Nova计算服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-nova-controller.sh

Compute节点 执行以下脚本

1
[root@controller]# iaas-install-nova-compute.sh

安装Neutron网络服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-neutron-controller.sh

Compute节点 执行以下脚本

1
[root@controller]# iaas-install-neutron-compute.sh

安装Dashboard服务

Controller节点 执行以下脚本

1
[root@controller]# aas-install-dashboard.sh

访问

打开浏览器访问Dashboard, 网址http://controller (或本机内网ip) /dashboard
注: 检查防火墙规则, 确保允许http服务相关端口通行, 或者关闭防火墙

创建云主机

(1) 管理员->资源管理->云主机类型->创建云主机类型

(2) 管理员->网络->网络->创建网络

(2) 项目->网络->安全组->管理规则->添加规则(ICMP、TCP、UDP)

(4) 项目->资源管理->云主机->创建云主机

安装Cinder块存储服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-cinder-controller.sh

Compute节点 执行以下脚本

1
[root@controller]# iaas-install-cinder-compute.sh

验证 [以后会用到]

Controller节点 执行以下脚本

1
2
3
4
使用cinder create 创建一个新的卷
[root@controller]# cinder create --display-name myVolume 1
通过cinder list 命令查看是否正确创建
[root@controller]# cinder list

Compute节点 执行以下脚本

1
[root@controller]# iaas-install-neutron-compute.sh

安装Swift对象存储服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-swift-controller.sh

Compute节点 执行以下脚本

1
[root@controller]# iaas-install-swift-compute.sh

安装Heat编配服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-heat.sh

安装Zun服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-zun-controller.sh

Compute节点 执行以下脚本

1
[root@controller]# iaas-install-zun-compute.sh

上传镜像

以CentOS7_1804.tar镜像为例, CentOS7_1804.tar镜像包存放在XianDian-IaaS-v2.4.iso镜像包中, 将docker镜像上传到glance中, 通过openstack使用镜像启动容器

1
2
[root@controller]# source /etc/keystone/admin-openrc.sh
[root@controller]# openstack image create centos7.5 --public --container-format docker --disk-format raw < CentOS7_1804.tar

启动容器

通过glance存储镜像启动容器

1
2
[root@controller]# zun run --image-driver glance centos7.5
[root@controller]# zun list

安装Ceilometer监控服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-ceilometer-controller.sh

Compute节点 执行以下脚本

1
[root@controller]# iaas-install-ceilometer-compute.sh

安装Aodh监控服务

Controller节点 执行以下脚本

1
[root@controller]# iaas-install-aodh.sh

更新/清除所有

1
[root@controller]# yum clean all

重启服务

httpd为服务名称

1
[root@controller]# systemctl restart httpd

添加控制节点资源到云平台

修改openrc.sh 把compute节点的IP和主机名改为controller节点的IP和主机名

运行iaas-install-nova-compute.sh 行过程中需要确认登录controller节点和输入controller节点root用户密码

文件传输

1
scp -r [文件名] [用户名]@[ip]:/home/[用户名]

ssh

1
ssh [用户名]@[ip]

生成ssh公钥

1
ssh-keygen

复制密钥给主机2

1
ssh-copy-id [用户名]@[ip]  

然后输入主机2的密码

密钥位置 传过来的在用户目录 将要传的在root目录后缀为pub是公钥 rsa是私钥

1
2
3
cd /home/用户名
ls -a
cd .ssh

查看文件

1
cat /etc/[路径]

查看当前路径

1
pwd

本文作者: 史迪奇
本文链接: https://sdq3.ml/Private-cloud.html