devstack setup record

缘由:

      看IBM的cloudman博客【每天5分钟玩转Openstack】学习的时候,有用到devstack,以前也看到devstack,遂想自己也踩踩坑装一个。

      每天5分钟玩转Openstack地址:  https://www.ibm.com/developerworks/community/blogs/132cfa78-44b0-4376-85d0-d3096cd30d3f?lang=zh (2017/07/27 记录)

 

开始:

      找到官方文档 https://docs.openstack.org/developer/devstack/

      看到:If you do not have a preference, Ubuntu 16.04 is the most tested, and will probably go the smoothest.

      所以从装 Ubuntu 16.04 开始。

 

动手:

   1.安装系统:

      1. 下载ubuntu的桌面系统: https://www.ubuntu.com/download/desktop

      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

 

posted on 2017-04-20 13:57  yaoweilei  阅读(737)  评论(3编辑  收藏  举报

导航