以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

个人服务器搭建教程 网络搭建实训教程

  

  sf2gis@163.com   

  

  # 1计算机01   

  

  # 1.1 基础环境:使用大牧场主生成容器   

  

  (也可使用码头工人直接创建,命令如下:   

  

  创建容器:# docker run-d-name controller-privileged=true   

  

  docker.io/sf2gis/openstack:ntp/美国/瑞士/初始化   

  

  进入容器:# docker exec -it控制器/bin/bash)   

  

     

  

  使用大牧场主时需要在网络中设置知识产权(10.42.0.11)和主机名(计算机01),在命令中设置入口为/usr/sbin/init,在安全中选择全部权限。   

  

  进入容器,设置互联网协议(互联网协议)和域名:/etc/hosts   

  

  10.42.0.10控制器   

  

  10.42.0.11计算机01   

  

  # 1.2 设置时间同步:ntp   

  

  配置为同步控制器时间。   

  

  # 1.3 安装新星服务(需要修改妙的源)   

  

  yum安装开放堆栈-nova-compute-y   

  

  # 1.3.1 修改妙的源:增加云计算源   

  

  # 1.3.1.1 备份源:cp /etc/yum.repos.d/* .回购/etc/yum。回购。d/bak_tmp/   

  

  # 1.3.1.2 修改基础:中心-基础。回购   

  

  #镜像系统使用客户端和的连接互联网协议(Internet Protocol)地址   

  

  #更新每个镜像的状态,以选择更新到和的镜像   

  

  #地理位置靠近客户。您应该将此用于CentOS更新   

  

  #除非您手动选择其他镜子。   

  

  #如果mirrorlist=对您不起作用,作为一个后备,您可以尝试   

  

  #改为注释掉baseurl=行.   

  

  [基础]   

  

  名称=CentOS-centos/7 - Base   

  

  # mirrorlist=http://mirorlist。centos。org/?release=centos/7 arch;=$ basearchrepo=os   

  

  基本网址=https://个镜像。阿里云。com/centos/7/OS/   

  

  gpgcheck=1   

  

  gpgkey=https://个镜子。阿里云。com/CentOS/7/OS/x86 _ 64/RPM-GPG-KEY-CentOS-7   

  

  发布的更新数量   

  

  [更新]   

  

  名称=CentOS-centos/7 -更新   

  

  # mirrorlist=http://mirorlist。centos。org/?release=centos/7 arch;=$ basearchrepo=更新   

  

  基本网址=https://个镜像。阿里云。com/centos/7/更新/$ base arch/   

  

  gpgcheck=1   

  

  gpgkey=https://个镜子。阿里云。com/CentOS/7/OS/x86 _ 64/RPM-GPG-KEY-CentOS-7   

  

  #可能有用的附加包   

  

  [附加]   

  

  名称=CentOS-centos/7 - Extras   

  

  # mirrorlist=http://mirorlist。centos。org/?release=centos/7 arch;=$ basearchrepo额外费用   

  

  基本网址=https://个镜像。阿里云。com/centos/7/extras/$ base arch/   

  

  gpgcheck=1   

  

  gpgkey=https://mirro   

rs.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

  

#additional packages that extend functionality of existing packages

  

[centosplus]

  

name=CentOS-centos/7 - Plus

  

#mirrorlist=http://mirrorlist.centos.org/?release=centos/7&arch;=$basearch&repo;=centosplus

  

baseurl=https://mirrors.aliyun.com/centos/7/centosplus/$basearch/

  

gpgcheck=1

  

enabled=0

  

gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

  

#contrib - packages by Centos Users

  

[contrib]

  

name=CentOS-centos/7 - Contrib

  

#mirrorlist=http://mirrorlist.centos.org/?release=centos/7&arch;=$basearch&repo;=contrib

  

baseurl=https://mirrors.aliyun.com/centos/7/contrib/$basearch/

  

gpgcheck=1

  

enabled=0

  

gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

  

# 1.3.1.3 修改CentOS-OpenStack-liberty.repo

  

# CentOS-OpenStack-liberty.repo

  

# Please see http://wiki.centos.org/SpecialInterestGroup/Cloud for more

  

# information

  

[centos-openstack-liberty]

  

name=CentOS-$releasever - OpenStack liberty

  

baseurl=http://buildlogs.centos.org/centos/$releasever/cloud/$basearch/openstack-

  

liberty/

  

gpgcheck=1

  

enabled=0

  

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud

  

[centos-openstack-liberty-test]

  

name=CentOS-$releasever - OpenStack liberty Testing

  

baseurl=http://buildlogs.centos.org/centos/$releasever/cloud/$basearch/openstack-

  

liberty/

  

gpgcheck=0

  

enabled=1

  

# 1.3.1.4 修改rdo-release.repo

  

[openstack-liberty]

  

name=OpenStack Liberty Repository

  

baseurl=http://buildlogs.centos.org/centos/7/cloud/$basearch/openstack-

  

liberty/

  

gpgcheck=1

  

enabled=1

  

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud

  

# 1.3.1.5 修改rdo-testing.repo

  

[openstack-liberty-testing]

  

name=OpenStack Liberty Testing

  

baseurl=http://buildlogs.centos.org/centos/7/cloud/$basearch/openstack-

  

liberty/

  

gpgcheck=0

  

enabled=0

  

[rdo-trunk-liberty-tested]

  

name=OpenStack Liberty Trunk Tested

  

baseurl=http://buildlogs.centos.org/centos/7/cloud/$basearch/rdo-trunk-

  

liberty-tested/

  

gpgcheck=0

  

enabled=0

  

# 1.3.2 配置nova

  

egrep -c '(vmx|svm)' /proc/cpuinfo #确定计算节点是否支持虚拟机的硬件加速 。如果这个命令返回

  

1或者更大的值,说明计算节点支持硬件加速,一般不需要进行额外的配置。如果这个命令返回``0``,则计算节点不支持硬件加速,必须配置

  

libvirt使用QEMU而不是使用KVM。

  

如果不支持更改

  

[compute01@ ~]# vi /etc/nova/nova.conf

  

[libvirt]

  

...

  

virt_type = qemu

  

:wq

  

配置nova

  

cd /etc/nova/

  

cp nova.conf nova.conf.bak

  

egrep -v "^#|^$" nova.conf.bak > nova.conf

  

vi nova.conf

  

[DEFAULT]

  

enabled_apis = osapi_compute,metadata

  

transport_url = rabbit://openstack:abc123@controller

  

auth_strategy = keystone

  

my_ip = 10.42.0.11 #计算节点(本机)上的IP 地址

  

use_neutron = True

  

firewall_driver = nova.virt.firewall.NoopFirewallDriver

  

#网络包括防火墙服务,你必须使用nova.virt.firewall.NoopFirewallDriver驱动程序禁用计算机防火墙服务

  

[keystone_authtoken] #配置认证服务访问

  

auth_uri = http://controller:5000

  

auth_url = http://controller:35357

  

memcached_servers = controller:11211

  

auth_type = password

  

project_domain_name = Default

  

user_domain_name = Default

  

project_name = service

  

username = nova

  

password = nova

  

[vnc] #启用并配置远程控制台访问

  

enabled = True

  

vncserver_listen = 0.0.0.0

  

vncserver_proxyclient_address = $my_ip

  

novncproxy_base_url = http://controller:6080/vnc_auto.html

  

#如果主机无法解析controller主机名,你可以将 controller替换为你控制节点管理网络的IP地址。

  

[glance]

  

api_servers = http://controller:9292 #配置镜像服务的位置

  

[oslo_concurrency]

  

lock_path = /var/lib/nova/tmp #配置锁路径

  

# 1.3.3 启动计算服务及其依赖,并将其配置为随系统自动启动

  

systemctl enable libvirtd.service openstack-nova-compute.service

  

systemctl start libvirtd.service openstack-nova-compute.service

  

注意:polkit服务可能启动失败,重新安装后重启可以解决。

  

注意:重启后修改/etc/hosts保证controller可用(compute服务会连接controller的mq服务)。

  

# 1.3.4 controller控制端验证操作

  

. admin-openrc #获得 admin 凭证来获取只有管理员能执行命令的访问权限

  

openstack compute service list #在控制节点上执行新节点的检查

  

nova service-list #列出服务组件,以验证是否成功启动并注册了每个进程

  

该输出应该显示四个服务组件在控制节点上启用,一个服务组件在计算节点上启用

  

nova endpoints #列出身份认证服务中的 API 端点来验证身份认证服务的连通性

  

  

  

# 1.4 安装neutron网络服务

  

# 1.4.1 安装服务

  

[compute01@ ~]# yum install openstack-neutron-linuxbridge ebtables ipset -y

  

# 1.4.2 配置Networking通用组件,Networking 通用组件的配置包括认证机制、消息队列和插件

  

cd /etc/neutron/

  

cp neutron.conf neutron.conf.bak

  

egrep -v "^$|^#" neutron.conf.bak > neutron.conf

  

vi neutron.conf

  

[DEFAULT]

  

transport_url = rabbit://openstack:abc123@controller #配置RabbitMQ消息队列访问

  

auth_strategy = keystone #配置认证服务访问,在[keystone_authtoken]中注释或者删除其他选项

  

[keystone_authtoken] #配置认证服务访问

  

auth_uri = http://controller:5000

  

auth_url = http://controller:35357

  

memcached_servers = controller:11211

  

auth_type = password

  

project_domain_name = default

  

user_domain_name = default

  

project_name = service

  

username = neutron

  

password = neutron

  

[oslo_concurrency]

  

lock_path = /var/lib/neutron/tmp #配置锁路径

  

# 1.4.3 配置Linux 桥接代理

  

cd /etc/neutron/plugins/ml2/

  

cp linuxbridge_agent.ini linuxbridge_agent.ini.bak

  

egrep -v "^$|^#" linuxbridge_agent.ini.bak >linuxbridge_agent.ini

  

vi linuxbridge_agent.ini

  

[linux_bridge]

  

physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME

  

#映射公共虚拟网络到公共物理网络接口

  

[vxlan] #禁用VXLAN覆盖网络

  

enable_vxlan = False

  

[securitygroup] #启用安全组并配置 Linux 桥接 iptables 防火墙驱动

  

enable_security_group = True

  

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

  

# 1.4.4 配置Linux 桥接代理

  

cd /etc/nova/

  

cp nova.conf nova.conf.nova

  

vi nova.conf

  

[neutron]

  

url = http://controller:9696

  

auth_url = http://controller:35357

  

auth_type = password

  

project_domain_name = Default

  

user_domain_name = Default

  

region_name = RegionOne

  

project_name = service

  

username = neutron

  

password = neutron

  

# 1.4.5 重启服务

  

[compute01@ nova]# systemctl restart openstack-nova-compute.service # 重启计算服务

  

#启动Linux桥接代理并配置它开机自启动

  

[compute01@ nova]# systemctl enable neutron-linuxbridge-agent.service

  

[compute01@ nova]# systemctl start neutron-linuxbridge-agent.service

  

# 1.4.6 验证安装结果-控制端Controller

  

[controller@ ~]# . admin-openrc #获得 admin 凭证来获取只有管理员能执行命令的访问权限

  

[controller@ ~]# neutron ext-list #列出加载的扩展,对neutron-server进程是否启动正常进行验证

  

[controller@ ~]# openstack network agent list

  

[controller@ ~]# neutron agent-list #列出代理以验证启动 neutron 代理是否成功

  

,该输出应该显示在控制节点上有四个代理,在每个计算节点上有一个代理

  

# 2 PackStack快速安装

  

Packstack主要是由Redhat推出的用于概念验证(PoC)环境快速部署的工具。Packstack是一个命令行工具,它使用Python封装了Puppet模块,通过SSH在服务器上部署OpenStack。

  

Packstack支持三种运行模式:

  

快速运行

  

交互式运行

  

非交互式运行

  

Packstack支持两种部署架构:

  

All-in-One,即所有的服务部署到一台服务器上

  

Multi-Node,即控制节点和计算机分离

  

# 2.1 环境准备

  

yum -y erase openstack-{packstack*,puppet-modules}#清除冲突包

  

sudo yum install -y centos-release-openstack-stein

  

sudo yum -y install yum-utils

  

sudo yum-config-manager --enable openstack-stein

  

sudo yum update –y

  

# 2.2 安装packstack

  

sudo yum install -y openstack-packstack

  

sudo packstack --allinone

  

#输入ssh公钥地址:/root/.ssh/id_rsa.pub

  

#管理员密码:root

  

#如果出现rpo安装错误,请删除rpo后重置。

  

#rpm -qa | grep rdo然后yum remove rdo-release- *。然后再次尝试packstack --allinone。

  

#安装完成后所有配置信息可以通过根目录查看:packstack-answers-20191014-180333.txt

  

# 2.3 安装完成后创建cell

  

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

  

# 2.4 查看用户

  

source keystonerc_admin

  

可以看到用户名和密码

  

# 2.5 页面登录

  

IP/dashboard

  

# 2.6 日志查看

  

cat /var/log/nova/nova-compute.log

  

# 3 OpenStack管理

  

# 3.1 实例管理

  

# 3.1.1 环境准备

  

准备镜像,创建外部网络(上网)、内部网络(局域网)和路由器、创建安全组(防火墙)和密钥对(可以使用密钥对免密码登录)。

  

# 3.1.2 创建实例

  

项目-》计算-》实例-》创建实例(配置镜像、硬件配置、网络、安全组、密钥对其他默认)-》创建实例。

  

  

  

  

  

  

# 3.2 VNC:实例创建完成后,点击实例名称-》控制台或VNC进入系统界面。

  

  

  

# 3.3 SSH:绑定浮动IP,可以使用SSH进行远程管理。

  

ssh -i testkey.pem cirros@172.24.4.219

  

  

# 3.3.1 实例控制:实例的启动、停止、删除、编辑

  

在实例列表的操作栏,下拉列表可以操作实例。

  

  

# 3.4 计算节点扩展

  

# 3.4.1 环境准备

  

# 3.4.1.1 安装epel仓库

  

rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

  

# 3.4.1.2 安装openstack仓库(注意与controller的openstack版本保持一致)

  

yum install -y centos-release-openstack-stein

  

# 3.4.1.3 安装Openstack客户端

  

yum install -y python-openstackclient

  

# 3.4.1.4 安装openstack SELinux管理包

  

yum install -y openstack-selinux

  

# 3.4.2 安装计算节点

  

yum install -y openstack-nova-compute

  

# 3.4.3 配置hostname:修改/etc/hosts

  

添加

  

192.168.71.2 controller

  

10.42.0.11 compute01

  

# 3.4.4 配置nova:具体参数参考controller上的配置

  

参考:配置nova

  

[DEFAULT]

  

enabled_apis = osapi_compute,metadata

  

#transport_url = rabbit://openstack:abc123@controller

  

transport_url = rabbit://guest:guest@192.168.71.2:5672/

  

auth_strategy = keystone

  

my_ip = 10.42.0.11

  

use_neutron = True

  

firewall_driver = nova.virt.firewall.NoopFirewallDriver

  

[api_database]

  

[barbican]

  

[cells]

  

[cinder]

  

[conductor]

  

[cors]

  

[cors.subdomain]

  

[database]

  

[ephemeral_storage_encryption]

  

[glance]

  

api_servers = http://controller:9292

  

[oslo_concurrency]

  

lock_path = /var/lib/nova/tmp

  

[guestfs]

  

[hyperv]

  

[image_file_url]

  

[ironic]

  

[keymgr]

  

[keystone_authtoken]

  

auth_uri = http://controller:5000

  

#auth_url = http://controller:35357

  

#memcached_servers = controller:11211

  

auth_type = password

  

#project_domain_name = Default

  

#user_domain_name = Default

  

#project_name = service

  

#username = nova

  

#password = nova

  

auth_url=http://192.168.71.2:5000

  

username=nova

  

password=9924ae10975c43df

  

user_domain_name=Default

  

project_name=services

  

project_domain_name=Default

  

[libvirt]

  

virt_type=qemu

  

[matchmaker_redis]

  

[matchmaker_ring]

  

[metrics]

  

[neutron]

  

[osapi_v21]

  

[oslo_concurrency]

  

[oslo_messaging_amqp]

  

[oslo_messaging_qpid]

  

[oslo_messaging_rabbit]

  

[oslo_middleware]

  

[rdp]

  

[serial_console]

  

[spice]

  

[ssl]

  

[trusted_computing]

  

[upgrade_levels]

  

[vmware]

  

[vnc]

  

enabled = True

  

vncserver_listen = 0.0.0.0

  

vncserver_proxyclient_address = $my_ip

  

novncproxy_base_url = http://controller:6080/vnc_auto.html

  

[workarounds]

  

[xenserver]

  

[zookeeper]

  

# 3.4.5 启动服务

  

systemctl enable libvirtd.service openstack-nova-compute.service

  

systemctl start libvirtd.service openstack-nova-compute.service

  

# 3.4.6 验证安装结果-控制端Controller

  

[controller@ ~]# . keystonerc-admin #获得 admin 凭证来获取只有管理员能执行命令的访问权限

  

openstack compute service list #在控制节点上执行新节点的检查

  

nova service-list #列出服务组件,以验证是否成功启动并注册了每个进程

  

该输出应该显示四个服务组件在控制节点上启用,一个服务组件在计算节点上启用

  

nova endpoints #列出身份认证服务中的 API 端点来验证身份认证服务的连通性

  

在dashboard中查看

  

管理员-计算-虚拟机管理器,可以看到新的主机,以及新主机的cpu和内存、硬盘已经合并到资源中。

  

  

# 3.5 镜像管理

  

下载镜像:下载qcow2格式的文件。支持多种格式。

  

上传镜像:上传文件,并选择相应的类型。默认操作。

  

  

# 3.6 数据管理

  

# 3.6.1 swift:对象存储,web服务的网盘。

  

项目-对象存储-容器-》创建容器。

  

  

# 3.6.2 cinder:块存储,硬盘及网络存储。

  

项目-卷-卷

  

  

# 3.7 网络管理

  

  

# 3.7.1 创建外部网络(管理中创建):模拟物理网卡(物理网卡的代理)。

  

管理员-网络=》创建网络(输入名称,选择项目admin,类型为flat,物理网络选择)

  

创建完成后查看端口,确认是否绑定成功。

  

  

  

  

  

# 3.7.2 创建内部网络(项目中创建):模拟内部局域网。

  

项目-网络=》创建网络(输入名称)-》创建子网(名称、地址、网关)-》配置子网详情(地址段,DNS)

  

  

  

  

# 3.7.3 创建路由器:外部网络和内部网络的连接器。

  

项目-网络=》创建路由(输入名称,选择外部网络,这里选择net)-》点击创建的路由名称-》增加接口=》选择内部网络(这里选择int)

  

# 3.7.4 内网访问外网:路由器

  

路由器连接内外网后,内网就可以访问外网了。

  

# 3.7.5 外网访问内网:绑定浮动IP

  

外网访问内网需要绑定浮动IP。

  

  

  

# 3.8 系统管理

  

# 3.8.1 项目管理

  

身份管理-项目管理

  

# 3.8.2 用户管理

  

身份管理-用户管理

  

  

# 3.8.3 角色管理

  

身份管理-角色管理

  

# 3.9 安全管理

  

# 3.9.1 创建安全组

  

项目-网络-

  

安全组=》创建安全组(输入名称,这里用ingress)=》添加规则:打开所有tcp、udp、icmp和任何协议的出口和入口(端口选择所有端口或范围,远程选择0.0.0.0/0)。

  

  

# 3.9.2 ssh登录(密钥对:客户端可以使用密钥对的私钥。公钥可在openstack中查看)。

  

1) 创建密钥对:项目-计算-

  

密钥对-》创建密钥对-》创建完成后自动下载到本地。copy到controller可以在controller使用ssh直接登录。可以复用,不需要每次都创建。

  

  

2) 修改私钥权限(权限太开发无法使用,使用600):chmod 600 miyue.pem

  

3) 使用私钥免密码登录:在controller以指定的私钥进行登录

  

ssh -i testkey.pem cirros@172.24.4.219

  

4) 查看公钥:项目-计算-密钥对点击密钥对名称即可查看

  

# 4 聚合多物理节点创建云主机

  

# 4.1 整体规划

  

  

# 4.2 添加计算节点

  

使用测试服务器,增加一个Docker的虚拟CentOS环境,根据控制节点的环境,安装配置计算组件Nova。

  

  

# 4.3 安装操作系统镜像

  

下载CentOS系统的qcow2格式云镜像,并在Glance中上传,配置。

  

  

# 4.4 创建安全组

  

在web管理端,创建入站出站规则,开放或关闭协议和端口。

  

  

# 4.5 创建密钥对或使用已有的密钥对。

  

密钥对用于从远程登录虚拟机。

  

  

# 4.6 创建网络拓扑

  

根据物理网络环境,创建外部网络、内部网络、路由器。使用路由器连接内外部网络。

  

  

# 4.7 创建实例:分配资源、系统、网络。

  

根据引导,选择之前创建的系统、网络,指定资源。

  

  

# 4.8 控制台查看

  

点击实例,查看控制台

  

  

# 4.9 绑定浮动IP

  

  

  

# 4.10 使用SSH进行远程管理。

  

ssh -i testkey.pem cirros@172.24.4.219

  

  

# 4.11 整体概况

  

资源使用情况