手动构建CL210环境——packstack部署vlan模式

前言: 目前redhat推出了openstack的课程—CL210,主要针对企业的openstack的管理和应用,其目前应用于生产的版本是RHOSP6,即社区版的Juno,其中CL210中需要有4台虚拟机,分别是workstation、ceph、servera和serverb,对于机器的硬件要求较高,且需要有上课环境,本文主要针对CL210考试的人而准备,需要在上课所在环境download两个ISO,分别是:RHEL7OSP-6.0-2015-02-23.2-x86_64.iso和rhel-server-7.0-x86_64-dvd.iso(根据提供的版本而定)。

环境介绍

系统:    CentOS Linux release 7.0.1406 (Core)

配置:    2vcpu+4Gmemery+100Gdisk+2张nic

主机信息:eth0:10.16.4.59(管理网和外部网络)    eth1(instance内部网络,采用vlan模式隔离)    hostname:controller

软件版本:RHEL7OSP-6.0,对应社区办的Juno版,可通过RDO的方式安装,详情参考Juno手动安装http://happylab.blog.51cto.com/1730296/1704460

1. 构建软件仓库

1.1. 安装httpd服务器

[[email protected] ~]# yum install httpd -y   
[[email protected] ~]# systemctl restart httpd 
[[email protected] ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: active (running) since Thu 2015-10-29 10:55:30 CST; 3s ago
  Process: 15388 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 15393 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─15393 /usr/sbin/httpd -DFOREGROUND
           ├─15394 /usr/sbin/httpd -DFOREGROUND
           ├─15395 /usr/sbin/httpd -DFOREGROUND
           ├─15396 /usr/sbin/httpd -DFOREGROUND
           ├─15397 /usr/sbin/httpd -DFOREGROUND
           └─15398 /usr/sbin/httpd -DFOREGROUND

1.2 挂载ISO到系统中(将准备的ISO放置到系统的某个目录下,本文假定放在/data1目录下)

[[email protected] ~]# vim /etc/fstab 
/data1/rhel-server-7.0-x86_64-dvd.iso           /var/www/html/rhel7.0     iso9660       defaults        0 0
/data1/RHEL7OSP-6.0-2015-02-23.2-x86_64.iso     /var/www/html/rhel7osp    iso9660       defaults        0 0 
#创建挂载目录
[[email protected] ~]# mkdir -p /var/www/html/rhel7.0
[[email protected] ~]# mkdir -p /var/www/html/rhel7osp
#执行挂载
[[email protected] ~]# mount -a
[[email protected] ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3       8.6G  1.3G  7.3G  15% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  8.4M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1       497M   90M  408M  18% /boot
/dev/vdc1       100G  4.1G   96G   5% /data1
/dev/loop0      3.5G  3.5G     0 100% /var/www/html/rhel7.0
/dev/loop1      515M  515M     0 100% /var/www/html/rhel7osp

说明:此时可以测试下http服务器中的yum源是否可用,可以通过浏览器或者elinks字符工具测试,如下为测试的方法:

[[email protected] ~]# elinks  --dump http://10.16.4.59/rhel7.0                ##测试rhel7基本仓库的yum源
                               Index of /rhel7.0
      [1][ICO]              [2]Name            [3]Last   [4]Size [5]Description
                                               modified
   ----------------------------------------------------------------------------
   [6][PARENTDIR] [7]Parent Directory                          -  
   [8][DIR]       [9]EFI/                     2014-05-07       -  
                                                   15:58
   [10][TXT]      [11]EULA                    2014-04-04    8.1K  
[[email protected] ~]# elinks  --dump http://10.16.4.59/rhel7osp                    ##测试openstack的yum源
                               Index of /rhel7osp
      [1][ICO]             [2]Name            [3]Last   [4]Size [5]Description
                                              modified
   ---------------------------------------------------------------------------
   [6][PARENTDIR] [7]Parent Directory                         -  
   [8][DIR]       [9]RH7-RHOS-6.0-Installer/ 2015-02-24       -  
                                                  09:58
   [10][DIR]      [11]RH7-RHOS-6.0/          2015-02-24       -  
                                                  09:55
   [12][DIR]      [13]RHEL-7-RHSCL-1.2/      2015-02-24       -  
                                                  10:01
   [14][DIR]      [15]RHEL7-Errata/          2015-02-14       -  
                                                  00:05
   [16][TXT]      [17]version.txt            2015-02-24      58  
                                                  10:01
   ---------------------------------------------------------------------------

1.3 配置yum客户端

[[email protected] ~]# cat /etc/yum.repos.d/rhel7.0.repo                 #基本仓库
[rhel7.0]
name=redhat rhel7.0 base reposity
baseurl=http://10.16.4.59/rhel7.0
enabled=1
gpgcheck=http://10.16.4.59/rhel7.0/RPM-GPG-KEY-redhat-release
gpgcheck=0
[[email protected] ~]# cat /etc/yum.repos.d/rhel7.0.repo                 #openstack仓库,有四个个安装频道
[rhel7.0]
name=redhat rhel7.0 base reposity
baseurl=http://10.16.4.59/rhel7.0
enabled=1
gpgcheck=http://10.16.4.59/rhel7.0/RPM-GPG-KEY-redhat-release
gpgcheck=0
[[email protected] ~]# cat /etc/yum.repos.d/rhel7.0.repo 
[rhel7.0]
name=redhat rhel7.0 base reposity
baseurl=http://10.16.4.59/rhel7.0
enabled=1
gpgcheck=http://10.16.4.59/rhel7.0/RPM-GPG-KEY-redhat-release
gpgcheck=0
[[email protected] ~]# cat /etc/yum.repos.d/rhel7osp.repo 
[RH7-RHOS-6.0]
name=redhat openstack 6 RH7-RHOS-6.0 reposity
baseurl=http://10.16.4.59/rhel7osp/RH7-RHOS-6.0
enabled=1
gpgcheck=0
[RH7-RHOS-6.0-Installer]
name=RH7-RHOS-6.0-Installer
baseurl=http://10.16.4.59/rhel7osp/RH7-RHOS-6.0-Installer
enabled=1
gpcheck=0
[RHEL7-Errata]
name=RHEL7-Errata
baseurl=http://10.16.4.59/rhel7osp/RHEL7-Errata
enabled=1
gpgcheck=0
[RHEL-7-RHSCL-1.2]
name=RHEL-7-RHSCL-1.2
baseurl=http://10.16.4.59/rhel7osp/RHEL-7-RHSCL-1.2
enabled=1
gpgcheck=0

#测试yum仓库是否可用,
[[email protected] ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                                                                     repo name                                                                                  status
RH7-RHOS-6.0                                                                redhat openstack 6 RH7-RHOS-6.0 reposity                                                   393
RH7-RHOS-6.0-Installer                                                      RH7-RHOS-6.0-Installer                                                                     194
RHEL-7-RHSCL-1.2                                                            RHEL-7-RHSCL-1.2                                                                           1,766
RHEL7-Errata                                                                RHEL7-Errata                                                                               11
rhel7.0                                                                     redhat rhel7.0 base reposity                                                               4,305
repolist: 6,669

注意事项:如果yum源不可用,请校验firewalld,校验httpd服务配置是否正确,挂载路径,是否有其他的仓库影响(建议将其他仓库删除),如果发现由上面所注册的5个频道,说明yum源配置完毕,下面可以开启redhat openstack之juno之旅了!

2. 通过packstack构建all-in-one环境—neutron

packstack是redhat推出的一款自动化部署和配置openstack的管理工具,其底层基于puppet来实现。此外,openstack中neutron可以用多种模式实现网络的隔离,如vlan,vxlan,gre,flat,此处采用vlan的模式部署(eth1网卡用于tenant instance的网络,eth0网卡用于管理网和instance外部网络)。

2.1,安装和配置packstack

[[email protected] ~]# yum install openstack-packstack -y
[[email protected] ~]# packstack --gen-answer-file /root/answer.txt        #生成应答文件
Packstack changed given value  to required value /root/.ssh/id_rsa.pub

修改应答文件内容:

[[email protected] ~]# vim /root/answer.txt 
 67 CONFIG_NTP_SERVERS=ntp服务器地址         ntp服务器地址,一般指向局域网内的ntp服务器,或者是controller
246 CONFIG_KEYSTONE_ADMIN_PW=redhat          admin管理员的密码
249 CONFIG_KEYSTONE_DEMO_PW=redhat           demo用户的密码
282 CONFIG_CINDER_VOLUMES_CREATE=y           是否创建VG,上课环境已经有cinder-volumes,应设置为n,自己搭建的环境没有,应保留为yes
485 CONFIG_LBAAS_INSTALL=y                   是否启用LBaaS功能,默认关闭,有需要可以启用
489 CONFIG_NEUTRON_METERING_AGENT_INSTALL=n  Ceilometer监控的agent
492 CONFIG_NEUTRON_FWAAS=y                   是否要启用FWaaS功能
496 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vlan     配置OVS网络驱动类型为vlan,多个可以用逗号分隔
501 CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vlan        设置tenant能够使用的网络类型,多种类型,可用逗号,分隔
506 CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch    使用OVS网络机制驱动,保障网络命名空间
517 CONFIG_NEUTRON_ML2_VLAN_RANGES=physnet1:1:1000      定义物理网卡的vlan id范围,其中physnet1需要和某个网桥关联,网桥需要和某个外部接口关联
545 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1 定义physnet1和网桥br-eth1关联,网卡和网桥br-eth1关联
549 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-eth1:eth1       定义网卡和网桥br-eth1关联,操作命令为:ovs-vsctl add-port br-eth1 eth1
629 CONFIG_PROVISION_DEMO=n                             关闭自动测试功能

开始安装,基于应答文件来实现:

[[email protected] ~]# packstack --answer-file /root/answer.txt 
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20151029-141031-iTUrA5/openstack-setup.log
Installing:
Clean Up                                             [ DONE ]
Setting up ssh keys                                  [ DONE ]
Discovering hosts‘ details                           [ DONE ]
Adding pre install manifest entries                  [ DONE ]
Installing time synchronization via NTP              [ DONE ]
Preparing servers                                    [ DONE ]
Adding AMQP manifest entries                         [ DONE ]
Adding MariaDB manifest entries                      [ DONE ]
Adding Keystone manifest entries                     [ DONE ]
Adding Glance Keystone manifest entries              [ DONE ]
Adding Glance manifest entries                       [ DONE ]
Adding Cinder Keystone manifest entries              [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Adding Cinder manifest entries                       [ DONE ]
Adding Nova API manifest entries                     [ DONE ]
Adding Nova Keystone manifest entries                [ DONE ]
Adding Nova Cert manifest entries                    [ DONE ]
Adding Nova Conductor manifest entries               [ DONE ]
Creating ssh keys for Nova migration                 [ DONE ]
Gathering ssh host keys for Nova migration           [ DONE ]
Adding Nova Compute manifest entries                 [ DONE ]
Adding Nova Scheduler manifest entries               [ DONE ]
Adding Nova VNC Proxy manifest entries               [ DONE ]
Adding OpenStack Network-related Nova manifest entries[ DONE ]
Adding Nova Common manifest entries                  [ DONE ]
Adding Neutron API manifest entries                  [ DONE ]
Adding Neutron Keystone manifest entries             [ DONE ]
Adding Neutron L3 manifest entries                   [ DONE ]
Adding Neutron L2 Agent manifest entries             [ DONE ]
Adding Neutron DHCP Agent manifest entries           [ DONE ]
Adding Neutron LBaaS Agent manifest entries          [ DONE ]
Adding Neutron Metering Agent manifest entries       [ DONE ]
Adding Neutron Metadata Agent manifest entries       [ DONE ]
Checking if NetworkManager is enabled and running    [ DONE ]
Adding OpenStack Client manifest entries             [ DONE ]
Adding Horizon manifest entries                      [ DONE ]
Adding Swift Keystone manifest entries               [ DONE ]
Adding Swift builder manifest entries                [ DONE ]
Adding Swift proxy manifest entries                  [ DONE ]
Adding Swift storage manifest entries                [ DONE ]
Adding Swift common manifest entries                 [ DONE ]
Adding MongoDB manifest entries                      [ DONE ]
Adding Redis manifest entries                        [ DONE ]
Adding Ceilometer manifest entries                   [ DONE ]
Adding Ceilometer Keystone manifest entries          [ DONE ]
Adding Nagios server manifest entries                [ DONE ]
Adding Nagios host manifest entries                  [ DONE ]
Adding post install manifest entries                 [ DONE ]

说明:可能会遇到openstack-selinux无法安装的问题,解决方法:到光盘中找到该对应的包,然后使用rpm -ivh openstack-selinux.*.rpm --nodeps的方式将其安装,如下:
[[email protected] ~]# rpm -ivh /var/www/html/rhel7osp/RH7-RHOS-6.0/Packages/openstack-selinux-0.6.23-1.el7ost.noarch.rpm --nodeps
warning: /var/www/html/rhel7osp/RH7-RHOS-6.0/Packages/openstack-selinux-0.6.23-1.el7ost.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:openstack-selinux-0.6.23-1.el7ost################################# [100%]

关于packstack选项的说明:

  1. 通用配置选项

7 CONFIG_SSH_KEY=/root/.ssh/id_rsa.pub             SSH公钥所在路径,packstack用该公钥实现远程无密码登陆,需要输入远程主机的root密码(如部署多个compute时使用)

12 CONFIG_DEFAULT_PASSWORD=                        设置所有服务的密码,设置之后,将会覆盖掉所有认证相关的密码,比如admin,database,keystone密码

15 CONFIG_MARIADB_INSTALL=y                        是否安装DB

19 CONFIG_GLANCE_INSTALL=y                         是否安装glance

23 CONFIG_CINDER_INSTALL=y                         是否安装cinder

27 CONFIG_NOVA_INSTALL=y                           是否安装nova

31 CONFIG_NEUTRON_INSTALL=y                        是否安装neutron,设置为n则安装nova-network

35 CONFIG_HORIZON_INSTALL=y                        是否安装dashboard

39 CONFIG_SWIFT_INSTALL=y                          是否安装swift

43 CONFIG_CEILOMETER_INSTALL=y                     是否安装ceilometor

时间: 2024-10-12 07:52:12

手动构建CL210环境——packstack部署vlan模式的相关文章

Maven利用Profile构建不同环境的部署包

项目开发好以后,通常要在多个环境部署,像我曾经呆过的公司最多达5种环境:本机环境(local).(开发小组内自测的)开发环境(dev).(提供给测试团队的)测试环境(sit).预发布环境(pre).正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接.远程调用的ws地址等等.如果每个环境build前手动修改这些参数,显然太不fashion. maven早就考虑到了这些问题,看下面的pom片段: <profiles> <profile> <!-- 本地环境 -

maven学习利用Profile构建不同环境的部署包

项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local).(开发小组内自测的)开发环境(dev).(提供给测试团队的)测试环境(test).预发布环境(pre).正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接.远程调用的ws地址等等.如果每个环境build前手动修改这些参数,显然太不fashion. maven早就考虑到了这些问题,看下面的pom片段: 1 <profiles> 2 <profile> 3 <!-- 本地环境

传统云环境下的CI/CD操作手册(六)jenkins手动构建示例及实现自动触发构建

构建项目位置/var/lib/jenkins/workspace/jenkins_project_name手动构建:1 新建自由风格jenkins项目---构建---执行shellrm -rf project1/git clone [email protected]:group1/project1.git ssh 192.168.1.17 "/etc/init.d/tomcat stop"ssh 192.168.1.18 "/etc/init.d/tomcat stop&qu

使用 Vagrant 构建开发环境

摘要:本文描述了如使用 Vagrant 构建统一的开发环境. 问题 作为开发人员,我们通常面临的问题有: 开发环境需要手工安装配置,这包括操作系统(CentOS.Ubuntu).PHP/HHVM.Python.Node.js.MySQL.Apache/Nginx等的版本和配置. 无法重现问题.甲:你说的问题,怎么在我的机器上没事儿啊?乙:可问题的确存在,不信你到我的机器上来看.甲:那我的机器和你的环境哪里不同呢?因为环境不同,比如开发环境和生产环境不同,和测试环境也不完全相同. 团队中没有统一的

软件构建、测试和部署自动化

不管是传统瀑布式开发模式还是现如今互联网行业流行的敏捷开发模式其整个过程必不可少存在软件代码编写.代码构建.软件测试(代码静态分析.单元测试.模块测试和系统集成测试等).软件部署等主要阶段.传统的做法往往是通过人工的投入方式一个阶段一个阶段的去执行实施,这好比传统的家庭作坊式手工生产工业品时代或劳动密集的工厂加工时代.现如今工业品的生产已逐步走向自动化生产流水线而解放出来的人力更多地是投入到自动化生产线无法替代的产品设计上.那反观软件产品的生产过程,我们会发现它在国内仍也大部分处于家庭作坊或大规

[转]利用Docker构建开发环境

利用Docker构建开发环境 Posted by makewonder on 2014 年 4 月 2 日 最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环境(本文主要是面向Mac OS X),以及期间所遇到的一些坑和解决方案.(本文会要求你对PAAS.LXC.CGroup.AUFS有一定的了解基础,请自行Google ) 大背景–虚拟化技术历史

个人环境搭建——搭建jenkins持续构建集成环境

---恢复内容开始--- 搭建jenkins持续构建集成环境  要搭建jenkins持续构建集成环境,首先要安装tomcat和JDK:   第一部分,基本说明:   敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要. 它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成.而每次的集成都是通过自动化的构建来验证,包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 持续集成的核心价值在于:

如何一步步在生产环境上部署django和vue

本文由云+社区发表 本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR----表示django的工程根目录 DJANGO_NAME----表示django的工程名称 VUE_HTML_DIR----表示vue编译好的index.html路径 VUE_STATIC_DIR----表示vue编译好的静态文件夹static的路径 整体框架 一个常用的web框架图如下图所示 框架

Docke--Dockerfile 构建LNMP环境

Dockerfile 构建nginx并结合php 1.构建基础镜像 先构建一个基础镜像,添加repo的环境和编译的环境,而centos镜像就是初始的官方镜像,后面构建php.nginx.mysql都使用该镜像为base image: [[email protected] myCentos]# cat Dockerfile #查看Dockerfile文件 # base image FROM centos # MAINTAINER MAINTAINER 381347268@qq.com # add