openstack学习-入门1

    xiaoxiao2021-11-29  79

    背景

    公司刚好想要了解了解的私有云的一些东西,作为趟路的人就先学习相关知识,openstack(python系),cloudstack(java系)。对于我这种只会搞c/c++,学习过python的人,当然更倾向于python系,何况现在好像openstack的流行度比cloudstack要高。

    环境

    ubuntu14.04LTS、python2.7.6、jdk7在部署另外的应用中已经安装过,初次接触也不知道这个jdk是否有用。

    编译

    编译的过程就相对而言比较简单,直接命令
    下载git及devstack: sudo apt-get install git cd /home sudo git clone https://github.com/openstack-dev/devstack.git

    创建用户及修改密码、权限等: cd /home/devstack/tools ./create-stack-user.sh sudo chown -R stack:stack /home/devstack passwd stack

    vim /etc/sudoers # User privilege specification root ALL=(ALL:ALL) ALL stack ALL=(ALL:ALL) ALL

    切换用户: su stack增加配置文件 将localrc放到目录/home/devstack/下 (在附件中上传localrc)

    执行stack.sh


    问题

    下面详细的记录自己碰到问题的解决方法,这个才是重点。

    问题1 subunit not found 解决办法: sudo apt-get install python-pip sudo pip install –upgrade pip sudo pip install -U os-testr

    问题2 Download of get-pip.py failed 解决办法: wget https://bootstrap.pypa.io/ez_setup.py sudo python distribute_setup.py wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py 然后在devstack/tools目录下,找到install_pip.py,注释 install_get_pip这个函数调用。

    问题3 pip not found in /opt/stack/.vnc/bin/ 解决办法: cd /opt/stack/.vnc/bin/ sudo ln -sf /usr/local/bin/pip pip

    问题4 碰到最多的要属:timeout错误. 最好的办法是手工下载 因为就算修改源后,发现还是非常多的timeout a. python的源: pypi.python.org 这个源下载后通过sudo python .. install 或者 sudo pip install *.whl 两种方式进行安装 b.openstack的源: github 将文件下载好后放入到 /opt/stack/目录下

    问题5 权限不足问题,比如无法创建or打 开:/usr/local/lib/python2.7/dist-packages/parsley.pyc 解决办法: sudo chown -R stack:stack /usr/local/lib/python2.7/dist-packages/

    问题6 docutils工具运行失败 解决办法 因为自己的机器是python2.7, 而最新版本的docutils已经是 python3.0版本,所以,下载老版本0.9. 因为从0.10开始就支 持了python3.0了 sudo pip install *.whl

    问题7 /opt/stack/requirements/.venv/bin/edit-constraints: No such file or directory 解决办法: 查看错误信息: /opt/stack/requirements/.venv/bin/edit-constraints /opt/stack/requirements/upper-constraints.txt – keystone ‘-e file:///opt/stack/ keystone#egg=keystone’ /opt/stack/requirements/.venv/bin/edit-constraints: No such file or directory 这个edit-constraints 明显是一个工具啊!这个工具是 ubuntu ? python? 百度没有给出答案! 最终在网上终于找到了一个地方, 在/opt/stack/requirements/openstack_requirements路径 下竟然有一个文件edit-constraints.py 如果用python 直接安装,会有什么结果呢? 尝试后,果然在/usr/bin/中生成一个工具edit-constraints.顺利解决上面的问题

    解决办法: sudo python /opt/stack/requirements/openstack_requirements/setup.py install

    问题8 困扰很久的Keystone无法初始化成功的问题 解决办法: 通过查看日志得到错误信息是pymysql库的错误 因为现在的openstack已经开始进行py3转移了, keystone它默认设置的是pymysql作为链接字串 在/etc/keystone/keystone.conf的[database]中可以看到: [database] connection = mysql+pymysql://root:123456@127.0.0.1/keystone? charset=utf8 知道python的小同学们都知道python中支持py3的数据库驱动(独此一家?我知道支持py3的只有这个)。 现在我们用的版本是python2.7 因此修改字串,以mysqldb的当时进行链接(python官方、mysql官方给的驱动就是它了),修改如下 [database] connection = mysql://root:123456@127.0.0.1/keystone?charset=utf8

    另外修改后会发现该文件还是会再次重新生成 为了将/home/devstack/lib/databases中的 MYSQL_DRIVER : 将pymysql 修改为mysql-python

    在localrc中追加配置 MYSQL_DRIVER=MYSQL-python KEYSTONE_TOKEN_FORMAT=UUID

    另外:/etc/keystone/keystone.conf中 [token] 模块下是默认使用pki作为token的provider, 但是pki会造成编译错误,因为对pki不了解,所以采用粗鲁的办法,按照上面的做法在localrc中追加配置 KEYSTONE_TOKEN_FORMAT=UUID,将token的provider直接改为uuid

    问题9 +lib/keystone:create_keystone_accounts:368 local admin_project ++lib/keystone:create_keystone_accounts:369 openstack project show admin -f value -c id Discovering versions from the identity service failed when creating the password plugin. Attempting to determine version from URL. 解决办法: 暂时没有发现有效的解决办法,按照网上的大神些说道的 export no_proxy=… chmod 777 /etc/openvswitch/…. 等等。统统无效 然后自己把devstack,keystone模块统统的使用 git reset –hard后, ./unstack.sh ./stack.sh 问题竟然解决了!!!

    问题10 screen -x stack Cannot open your terminal ‘/dev/pts/1’ - please check 解决办法: su stack script /dev/null

    初学这个,学的相当艰苦,不过把里面的很多东西都摸了一遍,对openstack的stack.sh有了一点点了解,算是解决这些问题的意外收获吧!

    另外吐槽个某陈…克老师,在百度上找到很多他的文章。然而对问题的解决真心不太对,,可能是自己太菜了,没有理解回复的解决问题的办法的精髓。


    localrc 的下载地址: http://download.csdn.net/detail/swjtu_ran/9688696

    期待以后自己能在这块一直进步,不过可能因为要养家糊口的因素,不一定能持之以恒的做自己想做的事情,勉self!

    转载请注明原文地址: https://ju.6miu.com/read-678883.html

    最新回复(0)