Erlo

私有云技术

时间:2020-05-23 19:30   阅读:20次   来源:博客园
页面报错
点赞

私有云技术

使用脚本部署OpenStack平台

需要两台主机,一台控制节点,一台计算节点

控制节点:安装MySQL、Keystone、Glance、Nova、Neutron、Dashboard等服务,主要作为认证、镜像管理节点,以及提供Nova和Neutron服务的管理节点。提供Dashboard界面服务

计算节点:安装nova-compute和Neutron服务,Nova服务提供云主机服务,Neutron提供网络服务

基础环境配置

基础配置

两个节点设置第一张网卡为仅主机模式,第二张网卡为NAT模式,以及配置CPU虚拟化

 

 

计算节点至少使用4 GB内存,硬盘不小于50 GB

IP地址配置

控制节点ip配置

# hostnamectl set-hostname controller

# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=8c4cfa11-e842-4d06-9320-0cf31d42075c
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.2

# vi /etc/sysconfig/network-scripts/ifcfg-eno33554960
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554960
UUID=69fd9c09-d0ec-496d-a0da-c7fc077b0e7a
DEVICE=eno33554960
ONBOOT=yes
IPADDR=192.168.20.10
NETMASK=255.255.255.0
GATEWAY=192.168.20.2

计算节点ip配置

# hostnamectl set-hostname compute

 

# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=604a502b-fe44-4284-8361-27ca70ed1a89
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.10.20
NETMASK=255.255.255.0
GATEWAY=192.168.10.2

# vi /etc/sysconfig/network-scripts/ifcfg-eno33554960
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554960
UUID=9323fac9-2c37-4604-9dc9-777cbeefdcd6
DEVICE=eno33554960
ONBOOT=yes
IPADDR=192.168.20.20
NETMASK=255.255.255.0
GATEWAY=192.168.20.2

上传基础镜像(控制节点)

XianDian-IaaS-v2.2.iso和CentOS-7-x86_64-DVD-1511.iso两个镜像包上传至controller节点的/root目录中

# ll
总用量 7012772
-rw-------. 1 root root       1635 5月  19 02:52 anaconda-ks.cfg
-rw-r--r--. 1 root root 4329570304 5月  20 17:11 CentOS-7-x86_64-DVD-1511.iso
-rw-r--r--. 1 root root 2851502080 11月  6 2017 XianDian-IaaS-v2.2.iso

将镜像文件挂载到/opt目录

# mkdir /opt/centos7.2

# mkdir /opt/iaas

# mount /root/CentOS-7-x86_64-DVD-1511.iso /opt/centos7.2/
mount: /dev/loop0 写保护,将以只读方式挂载

# mount /root/XianDian-IaaS-v2.2.iso /opt/iaas/
mount: /dev/loop1 写保护,将以只读方式挂载

配置YUM源文件

controller节点

# rm -rf /etc/yum.repos.d/CentOS-*

# vi /etc/yum.repos.d/local.repo 
[centos]
name=centos
baseurl=file:///opt/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1

compute节点

# rm -rf /etc/yum.repos.d/CentOS-*

# vi /etc/yum.repos.d/local.repo 
[centos]
name=centos
baseurl=ftp://192.168.10.10/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.10.10/iaas/iaas-repo
gpgcheck=0
enabled=1

安装ftp服务(控制节点)

# yum install -y vsftpd

编辑配置文件

# vi /etc/vsftpd/vsftpd.conf

文件最上边添加代码

anon_root=/opt

重启服务

# systemctl restart vsftpd

配置防火墙策略(两个节点)

# setenforce 0

# iptables -F

# iptables -X

# iptables -Z

# systemctl stop firewalld

安装服务(两个节点)

安装iaas-xiandian软件包

# yum install -y iaas-xiandian

配置环境变量(两个节点)

# vi /etc/xiandian/openrc.sh

HOST_IP=192.168.10.10
HOST_NAME=controller
HOST_IP_NODE=192.168.10.20
HOST_NAME_NODE=compute
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=eno33554960
CINDER_DBPASS=000000
CINDER_PASS=000000
BLOCK_DISK=md126p3
TROVE_DBPASS=000000
TROVE_PASS=000000
SWIFT_PASS=000000
OBJECT_DISK=md126p4
STORAGE_LOCAL_NET_IP=192.168.10.20
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000 

使用脚本安装OpenStack平台

安装基础服务(两个节点)

通过脚本安装基础服务

# iaas-pre-host.sh

安装完成后,退出并重新登陆,使主机名生效

安装MYSQL数据库服务(控制节点)

通过脚本安装MYSQL数据库服务

# iaas-install-mysql.sh

安装Keystone认证服务(控制节点)

通过脚本安装Keystone认证服务

# iaas-install-keystone.sh

安装Glance镜像服务(控制节点)

通过脚本安装Glance镜像服务

# iaas-install-glance.sh

安装Nova计算服务

控制节点通过脚本安装计算服务

# iaas-install-nova-controller.sh

计算节点通过脚本安装计算服务

# iaas-install-nova-compute.sh

安装Neutron网络服务

控制节点通过脚本安装网络服务

# iaas-install-neutron-controller.sh

# iaas-install-neutron-controller-gre.sh

计算节点通过脚本安装网络服务

# iaas-install-neutron-compute.sh

# iaas-install-neutron-compute-gre.sh

安装Dashboard服务(控制节点)

通过脚本安装Dashboard服务

# iaas-install-dashboard.sh

安装Cinder块存储服务

控制节点通过脚本安装块存储服务

# iaas-install-cinder-controller.sh

计算节点通过脚本安装块存储服务

# iaas-install-cinder-compute.sh

安装Swift对象存储服务

控制节点通过脚本安装对象存储服务

# iaas-install-swift-controller.sh

计算通过脚本安装对象存储服务

# iaas-install-swift-compute.sh

访问Dashboard服务

打开浏览器,访问92.168.10.10/dashboard

 

 登录后即可访问到Dashboard系统

OpenStack平台使用 

创建镜像

复制镜像到控制节点(控制节点)

在控制节点找到qcow2镜像

# cd /opt/iaas/images/

# ls
CentOS_6.5_x86_64_XD.qcow2  CentOS_7.2_x86_64_XD.qcow2  MySQL_5.6_XD.qcow2

上传镜像到Glane服务(控制节点)

将qcow2镜像上传到平台中

# source /etc/keystone/admin-openrc.sh

# glance image-create --name "centos7.2" --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | ea197f4c679b8e1ce34c0aa70ae2a94a     |
| container_format | bare                                 |
| created_at       | 2020-05-20T19:39:58Z                 |
| disk_format      | qcow2                                |
| id               | 554dedbb-4bc4-4825-ab8a-29385f1b6cfa |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | centos7.2                            |
| owner            | 07ea51a6ef9a4a3cb9f6930b2db2df7f     |
| protected        | False                                |
| size             | 400752640                            |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2020-05-20T19:40:10Z                 |
| virtual_size     | None                                 |
| visibility       | private                              |
+------------------+--------------------------------------+

创建外部网络

创建网络

在浏览器选择菜单栏“项目”→“网络”→“网络”命令,单击右侧“创建网络”按钮,创建虚拟机网络

 

设置网络 

在弹出的窗口中,输入网络名称为net-gre,管理状态为up,单击“前进”按钮

 

创建子网 

在弹出的对话框中填写子网信息,单击“前进”按钮

 

设置DHCP地址池 

配置DHCP地址池,勾选“激活DHCP”复选框,添加“114.114.114.114”的NDS服务器,单击“已创建”按钮创建网络

选择外部网络 

选择菜单栏“管理员”→“系统”→“ 网络”命令,在已创建的外部网络中,选择“操作”下拉菜单中“编辑网络”菜单命令

在弹出的对话框中,勾选“外部网络”复选框,单击“保存”按钮

创建内部网络 

创建网络

选择菜单栏“项目”→“网络”→“网络”命令,右侧单击“创建网络”按钮,创建虚拟机网络

 

设置网络

在弹出的对话框中设置网络名称,然后单击“前进”按钮

 

设置子网 

设置子网名称为“int-subnet”,网络地址为“10.10.0.0/24”,网关IP地址为“10.10.0.1”,单击“前进”按钮

 

设置DHCP 

在弹出的对话框中,勾选“激活DHCP”复选框,并点击“已创建”按钮

 

创建路由器 

创建路由

选择菜单栏“项目”→“网络”→“路由”命令,右侧单击“新建路由”按钮,创建路由

 

设置路由 

在弹出的对话框中设置路由名称为“route”,在外部网络下拉菜单中,选择外部网络“net-gre”,单击“新建路由”按钮

 

添加内部网络端口 

单击新创建的路由名称,进入路由编辑页面

 

选择“接口”标签,单击“增加接口”按钮

 

 在弹出的对话框中,选择“int-gre”内部网络,然后单击“提交”按钮

 

管理安全组 

管理default默认安全组

管理访问策略安全组,选择菜单栏“项目”→“计算”→“访问&安全”命令,管理default默认规则

 

添加放行策略 

单击右侧“添加规则”按钮,放行通信策略

 

放行所有ICMP协议,单击“添加”按钮

 

放行所有TCP协议,单击“添加”按钮 

 

放行所有UDP协议,单击“添加”按钮

 

创建云主机 

创建云主机

创建云主机,选择菜单栏“项目”→“计算”→“云主机”命令,单击右侧“创建云主机”按钮

 

设置云主机名称 

在弹出的对话框中,输入创建的云主机名称以及数量,然后单击“下一步”按钮

 

选择云主机镜像 

在“源”中选择所要使用的镜像文件,单击对应镜像后的“+”按钮,然后单击“下一步”按钮

 

选择云主机资源类型 

在“flavor”中选择所需云主机的资源类型,选择“m1.small”资源类型,单击对应的“+”按钮,然后单击“下一步”按钮

 

选择云主机网络 

在“网络”中使云主机使用创建的int-gre内部网络,单击对应的“+”按钮,然后单击“启动实例”按钮

  

绑定浮动ip地址 

选择菜单栏的“项目”→“计算”→“云主机”命令,在“操作”的下拉菜单中选择“绑定浮动IP”菜单命令

 

在弹出的对话框中单击“+”按钮,分配一个IP地址 

 

单击“分配IP”按钮,单击“关联”按钮,关联浮动ip地址

 

查看云主机创建状态 

创建完成后,可以在“云主机”页面中显示云主机列表,可查看到创建的云主机状态为“运行”

 

 

测试云主机连通性

回到电脑,window+R打开CMD窗口,通过ping命令进行测试,可以连通云主机

 

通过secureCRT工具,连接云主机,查看云主机IP地址,用户名为root,密码为00000 

 

 

Keystone服务运维 

OpenStack框架中,Keystone(OpenStack Identity Service)的功能是负责验证身份、校验服务规则和发布服务令牌的,它实现了OpenStack的Identity API。Keystone可分解为两个功能,即权限管理和服务目录。权限管理主要用于用户的管理授权。服务目录,类似一个服务总线,或者说是整个OpenStack框架的注册表。认证模块提供API服务、Token令牌机制、服务目录、规则和认证发布等功能

Keystone运维命令

创建用户(控制节点)

创建用户的具体格式

$ openstack user create [--domain <domain>]

[--password <password>]

[--email <email-address>]

[--enable | --disable]

<name>

创建一个名称为“alice”账户,密码为“mypassword123”,邮箱为“alice@example.com”

# source /etc/keystone/admin-openrc.sh

# openstack user create --password mypassword123 --email alice@example.com --domain demo alice
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | 1b3296609d0b4f82a7734e5439033935 |
| email     | alice@example.com                |
| enabled   | True                             |
| id        | fd6877910f884ef3b5b619adab16ada9 |
| name      | alice                            |
+-----------+----------------------------------+

创建项目(控制节点)

一个Project就是一个项目、团队或组织,当请求OpenStack服务时,必须定义一个项目

创建项目的格式

$ openstack project create [--domain <domain>]

                              [--description <description>]

                              [--enable | --disable]

   <project-name>

创建一个名为“acme”的项目

# openstack project create --domain demo acme
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| domain_id   | 1b3296609d0b4f82a7734e5439033935 |
| enabled     | True                             |
| id          | 5a1740c1194d425b844f9df90e88d969 |
| is_domain   | False                            |
| name        | acme                             |
| parent_id   | 1b3296609d0b4f82a7734e5439033935 |
+-------------+----------------------------------+

创建角色(控制节点)

角色限定了用户的操作权限

创建角色的具体格式

$ openstack user create <name>

创建一个角色“compute-user

# openstack role create compute-user
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | None                             |
| id        | f18f7c0f40a54378aa4c51c3b250e56b |
| name      | compute-user                     |
+-----------+----------------------------------+

绑定用户和项目权限(控制节点)

添加的用户需要分配一定的权限,这就需要把用户关联绑定到对应的项目和角色

绑定用户和项目权限的具体格式

$ openstack role add --user <user> --project <project> <role>

给用户“alice”分配“acme”项目下的“compute-user”角色

# openstack role add --user alice --project acme compute-user

Keystone基础查询命令

用户列表查询(控制节点)

OpenStack平台所使用的用户可以通过Keystone组件进行查询

相关推荐

提交留言

评论留言

还没有评论留言,赶紧来抢楼吧~~

吐槽小黑屋()

* 这里是“吐槽小黑屋”,所有人可看,只保留当天信息。

  • Erlo吐槽

    Erlo.vip2020-06-07 02:05:10Hello、欢迎使用吐槽小黑屋,这就是个吐槽的地方。
  • 返回顶部