Ubuntu14.04使用DevStack搭建OpenStack(Ocata,AllInOne)

一、条件(在VMWare上装的):

  1. 操作系统:Ubuntu14.04
  2. 磁盘空间:100G
    • 看你要装的实例了,最好是大点,如果只是单纯的测功能弄个40G也可以
    • 我是分了100G
  3. 内存:16G
    • 越大越好,一开始我分了4G,安装过程各种报错
  4. 处理器开启虚拟化
  5. 单网卡(桥接模式或NAT都可以,混杂模式)
    • 我本机桥接模式和NAT模式都测试过,没开混杂模式网络可以互通
    • 但在VMWare ESXI上用桥接模式,还得打开混杂模式才能正常
    • 本例介绍使用NAT模式吧,桥接模式也一样
  6. 管理IP网络(IP:192.168.187.130, mask:255.255.255.0, gw: 192.168.187.2)
  7. 浮动IP网络(IP段: 192.168.187.200-220, mask:255.255.255.0, gw: 192.168.187.2)

二、开始搭建

  1. 设置root用户密码
    sudo su
    passwd
    
  2. 安装配置ssh服务
    1. apt install openssh-server
    2. vi /etc/ssh/sshd_config
     将PermitRootLogin改为yes,保存退出。
    3. 重启ssh服务
     service ssh restart
    
  3. 配置静态IP
    // 切换到root   
    sudo su
    vi /etc/network/interfaces
    // 内容
    auto ens33
    iface ens33 inet static
    address 192.168.187.130
    netmask 255.255.255.0
    gateway 192.168.187.2
    dns-nameserver 114.114.114.114
    
    保存后重启网络:
     /etc/init.d/networking restart
    
  4. 将apt源换位国内源
    4.1. 备份:
    cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
    4.2. 编辑:vi /etc/apt/sources.list
    deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
    
    1. 更新
    apt update
    apt upgrade
    
    1. 时间同步
    设定时区:dpkg-reconfigure tzdata
     选择Asia -> 再选择Shanghai -> OK
    同步时间命令:
         1. date -s <时间>
         或者:
         1. sudo apt-get install ntpdate // 安装时间同步工具
         2. sudo ntpdate cn.pool.ntp.org // 与网络服务器同步时间
         3. date // 查看时间是否已同步
    
    1. 安装pip,并配置pip源
    mkdir ~/.pip
    vi ~/.pip/pip.conf
    // 添加:
    [global]
    index-url = http://pypi.douban.com/simple/
    trusted-host = pypi.douban.com
    
    1. 安装git工具
    apt install git
    pip install -U os-testr
    
    1. 下载devstack(ocata版本)到/home目录
    // 如果之前下载过,直接解压到/home目录
    cd /home
    tar -xf devstack.tar.gz
    // 如果没有下载过则:
    git clone https://git.openstack.org/openstack-dev/devstack -b stable/ocata
    
    1. 创建stack用户
    cd /home/devstack/tools/
    ./create-stack-user.sh
    chown -R stack:stack /home/devstack
    
    1. 切换stack用户
    sudo su - stack
    
    1. 安装pip,并配置pip源
    mkdir ~/.pip
    vi ~/.pip/pip.conf
    // 添加:
    [global]
    index-url = http://pypi.douban.com/simple/
    trusted-host = pypi.douban.com
    
    1. 修改local.conf,配置IP
    cd /home/devstack
    // 修改网络
    // Credentials 设置密码,
    // Branches设置要装的openstack版本
    vim /home/devstack/local.conf
    // 我的配置
    
    [[local|localrc]]
    #Define images to be automatically downloaded during the DevStack built process.
    IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
    #change github to trystack
    GIT_BASE=${GIT_BASE:-http://git.trystack.cn}
    NOVNC_REPO=${NOVNC_REPO:-http://git.trystack.cn/kanaka/noVNC.git}
    # Credentials
    DATABASE_PASSWORD=password
    ADMIN_PASSWORD=password
    SERVICE_PASSWORD=password
    SERVICE_TOKEN=password
    RABBIT_PASSWORD=password
    #FLAT_INTERFACE=em1
    HOST_IP=192.168.187.130
    SERVICE_HOST=192.168.187.130
    MYSQL_HOST=192.168.187.130
    RABBIT_HOST=192.168.187.130
    GLANCE_HOSTPORT=192.168.187.130:9292
    ##Neutronoptions
    Q_USE_SECGROUP=True
    FLOATING_RANGE="192.168.187.0/24"
    FIXED_RANGE="10.0.0.0/24"
    Q_FLOATING_ALLOCATION_POOL=start=192.168.187.3,end=192.168.187.223
    PUBLIC_NETWORK_GATEWAY="192.168.187.2"
    Q_L3_ENABLED=True
    PUBLIC_INTERFACE=eth0
    Q_USE_PROVIDERNET_FOR_PUBLIC=True
    OVS_PHYSICAL_BRIDGE=br-ex
    PUBLIC_BRIDGE=br-ex
    OVS_BRIDGE_MAPPINGS=public:br-ex
    # Work offline
    #OFFLINE=True
    # Reclone each time
    RECLONE=yes
    # Branches Now the devstack have bug in keystone and neutron for liberty. so we need use master
    #KEYSTONE_BRANCH=stable/ocata
    #NOVA_BRANCH=stable/ocata
    #NEUTRON_BRANCH=stable/ocata
    #SWIFT_BRANCH=stable/ocata
    #GLANCE_BRANCH=stable/ocata
    #CINDER_BRANCH=stable/ocata
    #HEAT_BRANCH=stable/ocata
    #TROVE_BRANCH=stable/ocata
    #HORIZON_BRANCH=stable/ocata
    #SAHARA_BRANCH=stable/ocata
    #CEILOMETER_BRANCH=stable/ocata
    # Logging
    # -------
    # By default ``stack.sh`` output only goes to the terminal where it runs. It can
    # be configured to additionally log to a file by setting ``LOGFILE`` to the full
    # path of the destination log file. A timestamp will be appended to the given name.
    LOGFILE=/opt/stack/logs/stack.sh.log
    VERBOSE=TrueLOG_COLOR=True
    SCREEN_LOGDIR=/opt/stack/logs
    # the number of days by setting ``LOGDAYS``.
    LOGDAYS=1
    # Database Backend MySQL
    enable_service mysql
    # RPC Backend RabbitMQ
    enable_service rabbit
    # Enable Keystone - OpenStack Identity Service
    enable_service key
    # Horizon - OpenStack Dashboard Service
    enable_service horizon
    # Enable Swift - Object Storage Service without replication.
    enable_service s-proxy s-object s-container s-account
    SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
    SWIFT_REPLICAS=1
    # Enable Glance - OpenStack Image service
    enable_service g-api g-reg
    # Enable Cinder - Block Storage service for OpenStack
    #VOLUME_GROUP="cinder-volumes"
    enable_service cinder c-api c-vol c-sch c-bak
    # Enable Heat (orchestration) Service
    #enable_service heat h-api h-api-cfn h-api-cw h-eng
    # Enable Trove (database) Service
    enable_service trove tr-api tr-tmgr tr-cond
    # Enable Sahara (data_processing) Service
    #enable_service sahara
    # Enable Tempest - The OpenStack Integration Test Suite
    enable_service tempest
    # Enabling Neutron (network) Service
    disable_service n-net
    enable_service q-svc
    enable_service q-agt
    enable_service q-dhcp
    enable_service q-l3
    enable_service q-meta
    enable_service q-metering
    enable_service neutron
    ## Neutron - Load Balancing
    #enable_service q-lbaas
    ## Neutron - Firewall as a Service
    #enable_service q-fwaas
    ## Neutron - VPN as a Service
    #enable_service q-vpn
    # VLAN configuration.
    Q_PLUGIN=ml2
    ENABLE_TENANT_VLANS=True
    # GRE tunnel configuration
    #Q_PLUGIN=ml2
    #ENABLE_TENANT_TUNNELS=True
    # VXLAN tunnel configuration
    #Q_PLUGIN=ml2
    #Q_ML2_TENANT_NETWORK_TYPE=vxlan
    # Enable Ceilometer - Metering Service (metering + alarming)
    enable_service ceilometer-acompute ceilometer-acentral ceilometer-collector ceilometer-api
    enable_service ceilometer-alarm-notify ceilometer-alarm-eval
    enable_service ceilometer-anotification
    ## Enable NoVNC
    enable_service n-novnc
    [[post-config|$NOVA_CONF]]
    [DEFAULT]
    # Ceilometer notification driverinstance_usage_audit=True
    instance_usage_audit_period=hour
    notify_on_state_change=vm_and_task_state
    notification_driver=nova.openstack.common.notifier.rpc_notifier
    notification_driver=ceilometer.compute.nova_notifier
    
    1. 修改git_base的协议为https
    cd /home/devstack
    vim stackrc
    修改GIT_BASE如下:
     GIT_BASE=${GIT_BASE:-http://git.openstack.org}
    
    1. 执行安装
    # 在stack用户下执行
    cd /home/devstack
    ./stack.sh
    
    1. 安装完成
    显示this is your ip等待,代表安装成功。
    
    1. 浏览器输入ip,访问openstack
    2. 注意: 虚拟机重启后openstack服务不会自动运行,
      18.1 恢复逻辑卷组
      sudo losetup /dev/loop0 /opt/stack/data/stack-volumes-default-backing-file
      sudo losetup /dev/loop1 /opt/stack/data/stack-volumes-lvmdriver-1-backing-file
      
      18.2 启动服务
      cd /home/devstack
      // 启动服务
      screen -c stack-screenrc 
      

常见问题

  1. 出现pip版本过低,或pip fail
sudo pip install -U os-testr
或者
sudo pip install --upgrade pip
去掉/home/devstack/tools/cap-pip.txt的版本比较
或者
修改cap-pip.txt文件
  vi /home/devstack/tools/cap-pip.txt
  显示 pip!=8,<10  将<10删除就可以了
  1. 出现Cannot uninstall 'httplib2'. It is a distutils installed project and thus we cannot accurately deter
解决方法:
cd /usr/lib/python2.7/dist-packages
ls | grep 'httplib2'
mv httplib2-0.8.egg-info httplib2-0.8.egg-info_bak
  1. 安装tempest时,执行tox --notest -efull时报错
    3.1. pip版本不对,需pip install --upgrade,这是执行这条指令无法解决。
    解决方法:
        cd /opt/stack/tempest
        1. vim tox.ini 修改如下:
            [testenv]
            ...
            #install_command = pip install {opts} {packages}
            install_command = ./create-env {opts} {packages}
        
        2. vim create-env // 创建create-env文件,文件内容如下
            #!/usr/bin/env sh
            set -e
            pip install --upgrade pip
            pip install $@
        
        3. 把https改为http 就不会报下面2这个问题。
    
    3.2. 错误如下:
    ERROR: could not install deps [-chttps://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt, -r/opt/stack/tempest/requirements.txt];
    v = InvocationError(u'/opt/stack/tempest/create-env -chttps://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt -r/opt/stack/tempest/requirements.txt', 1)
    
    解决方法:
    cd /opt/stack/tempest
        vim tox.ini 执行如下指令:
        替换https->http
        :0,$s/https/http/g
    
  2. devstack默认创建逻辑卷比较小(10G),安装前可以调整(stack用户下导入该环境变量)
```
export VOLUME_BACKING_FILE_SIZE=10240M
或者
// 在local.conf中添加
vim /home/devstack/local.conf
VOLUME_BACKING_FILE_SIZE=10240M
```
  1. 如果已经安装完成了,才发现逻辑卷不够大,可以使用vgextend扩展vg(逻辑卷组)
    参考:
    OpenStack使用本地磁盘创建或拓展逻辑卷组
    OpenStack添加新硬盘到LVM逻辑卷组
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容