原因:html
看IBM的cloudman博客【天天5分钟玩转Openstack】学习的时候,有用到devstack,之前也看到devstack,遂想本身也踩踩坑装一个。html5
天天5分钟玩转Openstack地址: https://www.ibm.com/developerworks/community/blogs/132cfa78-44b0-4376-85d0-d3096cd30d3f?lang=zh (2017/07/27 记录)python
开始:git
找到官方文档 https://docs.openstack.org/developer/devstack/ubuntu
看到:If you do not have a preference, Ubuntu 16.04 is the most tested, and will probably go the smoothest.swift
因此从装 Ubuntu 16.04 开始。bash
动手:python2.7
1.安装系统:ssh
1. 下载ubuntu的桌面系统: https://www.ubuntu.com/download/desktopide
2. 下载好的镜像刻到U盘中: 用UltraISO【启动】->写入硬盘映像 #菜单的第三个,而后第4个。
3. U盘启动后开始按步骤安装完毕。
2.设置系统:
1. 系统装好后发现ssh不了,坑爹的发现竟然默认不装openssh-server,理解不了,跟公司申请了外网的代理以后。发现 set http_proxy=10.167.129.21:8080的方式不行。
2. 参照其余的解决方案,直接设置到 /etc/apt/apt.conf , 内容以下:
Acquire::http::proxy "http://10.167.129.21:8080/"; Acquire::ftp::proxy "ftp://10.167.129.21:8080/"; Acquire::https::proxy "https://10.167.129.21:8080/";
3. pip 的安装的时候使用代理的方式为: sudo pip install --upgrade pip --proxy=10.167.129.21:8080
4. 设置了下源为阿里云的,直接修改 /etc/apt/sources.list , 内容以下:
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties deb http://archive.canonical.com/ubuntu xenial partner deb-src http://archive.canonical.com/ubuntu xenial partner deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
5. 更新系统源并更新系统 :
sudo apt-get update sudo apt-get upgrade
3.环境准备:
1. git工具安装。(devstack须要用到)
apt-get install git
2. pip源的设置。(devstack须要用到)
stack@Jump-DevStack:~$ cat .pip/pip.conf [global] trusted-host=mirrors.aliyun.com index-url=http://mirrors.aliyun.com/pypi/simple
4.开始安装:
1. stack用户做成。(devstack须要通常用户执行)
sudo useradd -s /bin/bash -d /opt/stack -m stack echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack sudo su - stack
2.下载devstack
git clone https://git.openstack.org/openstack-dev/devstack cd devstack
3. 建立local.conf文件,拷贝sample文件/opt/stack/devstack/samples/local.conf 到 /opt/stack/devstack/local.conf,进行修改,我修改的地方以下:
ADMIN_PASSWORD=admin1234 DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD
HOST_IP=193.168.140.127 #本机地址,这个是须要提早改好的
GIT_BASE=http://git.trystack.cn #后面这三个是国内的openstack的源的地址,国外的下载实在太慢了。
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
你能够提早下载好全部的openstack源码,分别须要如下: #能够直接去官网git clone xxxxx.git的方式弄到本地例如: git clone git://git.openstack.org/openstack/heat.git
nova glance cinder horizon keystone neutron swift heat ceilometer tempest
3. 最后一部开始安装,官网的给出15-20分钟,我只能呵呵:
./stack.sh
5.我遇到的问题及解决:
1.错误: generate-subunit: command not found
#缘由缺乏相关包
#解决方法:安装相关包,以下
sudo apt-get install python-pip sudo pip install --upgrade pip sudo pip install -U os-testr
2.错误消息以下:
2017-04-26 12:36:39.878 | ++lib/tempest:install_tempest:626 tox -r --notest -efull 2017-04-26 12:36:40.786 | full create: /opt/stack/tempest/.tox/tempest 2017-04-26 12:36:59.998 | full installdeps: -r/opt/stack/tempest/requirements.txt 2017-04-26 12:37:00.002 | ERROR: invocation failed (errno 13), args: ['/opt/stack/tempest/tools/tox_install.sh', 'https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt', '-r/opt/stack/tempest/requirements.txt'], cwd: /opt/stack/tempest 2017-04-26 12:37:00.002 | Traceback (most recent call last): 2017-04-26 12:37:00.003 | File "/usr/local/bin/tox", line 11, in <module> 2017-04-26 12:37:00.003 | sys.exit(cmdline()) ...... 2017-04-26 12:37:00.004 | stdout=stdout, stderr=stderr, env=env) 2017-04-26 12:37:00.004 | File "/usr/lib/python2.7/subprocess.py", line 711, in __init__ 2017-04-26 12:37:00.004 | errread, errwrite) 2017-04-26 12:37:00.004 | File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child 2017-04-26 12:37:00.004 | raise child_exception 2017-04-26 12:37:00.005 | OSError: [Errno 13] Permission denied ...... 2017-04-26 12:37:00.433 | +./stack.sh:exit_trap:507 [[ -z /opt/stack/logs ]] 2017-04-26 12:37:00.437 | +./stack.sh:exit_trap:510 /opt/stack/devstack/tools/worlddump.py -d /opt/stack/logs 2017-04-26 12:37:00.814 | +./stack.sh:exit_trap:516 exit 1
#缘由: 由于是手动下载到本地的 /opt/stack/tempest/tools/tox_install.sh 这个忘记给执行权限了
#解决方法:添加一下 chmod + x /opt/stack/tempest/tools/tox_install.sh
3.错误:/usr/bin/env: 'bash\r': No such file or directory
#缘由:source中有win的字符集。官网clone下来的文件竟然,,我也是醉了
#解决方法: dos2unix /opt/stack/tempest/tools/tox_install.sh
4.错误消息以下:
| 2017-04-27 15:24:24.861 INFO keystone.assignment.core [req-efc745a0-8071-4fff-8f64-0db03a3330c7 None None] Creating the default role 9fe2ff9ee4384b1894a90878d3e92bab because it does not exist. | +./stack.sh:main:1076 create_keystone_accounts | +lib/keystone:create_keystone_accounts:328 local admin_project | ++lib/keystone:create_keystone_accounts:329 openstack project show admin -f value -c id | Failed to discover available identity versions when contacting http://193.168.140.127/identity_admin. Attempting to parse version from URL. | Could not determine a suitable URL for the plugin | +lib/keystone:create_keystone_accounts:329 admin_project= | +lib/keystone:create_keystone_accounts:1 exit_trap | +./stack.sh:exit_trap:492 local r=1 | ++./stack.sh:exit_trap:493 jobs -p | +./stack.sh:exit_trap:493 jobs= | +./stack.sh:exit_trap:496 [[ -n '' ]] | +./stack.sh:exit_trap:502 kill_spinner | +./stack.sh:kill_spinner:388 '[' '!' -z '' ']' | +./stack.sh:exit_trap:504 [[ 1 -ne 0 ]] | +./stack.sh:exit_trap:505 echo 'Error on exit' | Error on exit | +./stack.sh:exit_trap:506 generate-subunit 1493276941 946 fail | +./stack.sh:exit_trap:507 [[ -z /opt/stack/logs ]] | +./stack.sh:exit_trap:510 /opt/stack/devstack/tools/worlddump.py -d /opt/stack/logs | +./stack.sh:exit_trap:516 exit 1