Devstack单节点环境实战配置
2016-07-22 02:50
323 查看
本实验是在VMware12下建立虚机的一个测试环境。
Linux版本 centos-everything-7.0
VMware版本 VMwareworkstations12
虚机配置如下:
8G内存
2核cpu(开启虚拟化)
网络配置为桥接模式
/boot 500M(一定要分大点不然之后会遇到问题)
swap分区4G
其余的空间全部分给/分区
配置yum源,你可以保持装机自带的centos自带官方yum源,或者使用国内的给的镜像,本次试验中用的国外镜像并且使用fastestmirror,如果有需求的朋友们可以下载repo源自动构造本地yum源方法。
http://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-mitaka/
http://mirrors.163.com/centos/7/cloud/x86_64/openstack-mitaka/
安装fastestmirror插件
yum install yum-plugin-fastestmirror -y
rpm -qa | fastestmirror
vim /etc/yum/pluginconf.d/fastestmirror.conf
配置文件中的hostfilepath字段,用于定义yum源的配置文件,我们可以将所知道的yum源写入这个txt文件。
运行yum check-update检查是否配置生效
通常情况下,使用fastestmirror插件的默认设定即可满足使用要求。但在网络的某些特殊情况下,可能fastestmirror插件的判断不准确。这时,我们可以修改其ping响应值保存表:
vim /var/cache/yum/x86_64/7/timedhosts.txt
如果yum版本高的情况下这些工作都是由yum配置好的,我们只需要检查一下即可。
yum update 升级你现有系统,尽量避免各种包不兼容问题。(现在先别重启)
vim /etc/selinux.config
SELINUX=disabled
关闭其他防火墙只保留iptables
systemctl mask ebtables
systemctl mask firewalld
systemctl mask ip6tables
systemctl enable iptables
至此重启机器让update的包应用。
如果在update升级之后发现boot分区空间不足,例如”XXX more space needed on the /boot filesystem”,需要对boot分区做扩容。
先把旧的boot分区进行备份,例如我想把它备份到/tmp/boot文件夹中
mkdir /tmp/boot
cp -r /boot/* /tmp/boot
umount /boot
然后对现有分区进行扩容或者新建分区,在笔者的实验环境中/boot分区只分了200M,在update的时候没有报错但是重启之后/boot分区就满了文件系统没有空余的分区,这个时候我只能在新加了一块500M的虚拟硬盘进去进行新分区了。这个时候需要先在分区表里面看一眼原来的分区是什么格式的,最好分成一样格式的。
vim /etc/fstab
这里我的虚机/boot分区是ext4所以我新划分的分区需要格式化成ext4格式
fdisk -l
这里我能看到我新划出来的/dev/sdb磁盘
fdisk /dev/sdb
partprobe
mkfs.ext4 /dev/sdb1
blkid
将拿到的UUID重新写入到/etc/fstab
此时重新挂载boot分区将/tmp/boot的文件拷贝到/boot分区即可。
cd /var/download/devstack
git clone https://github.com/openstack-dev/devstack.git -b stable/mitaka
可以在github官网上看到这个branche,我们做M版的自动化部署当然分支选M版的。
现在Devstack不能通过root身份来运行stack.sh文件了,需要创建stack用户,以stack用户的身份来运行stack.sh脚本。
cd /var/download/devstack/tools
./create-stac-user.sh
5.修改devstack目录权限,让stack用户可以运行
chown -R stack:stack /var/download/devstack
chmod 777 /dev/pts/0 (第一个用户登录,console的设备文件为/dev/pts/0,第二个为/dev/pts/1,以此类推。/dev/pts是远程登录(telnet,ssh等)后创建的控制台设备文件所在的目录)
chmod 777 /opt/stack -R
(这个是自动化部署openstack的时候的默认安装路径,默认安装路径可以在local.conf文件中修改,如果修改了就需要在这里重新设置相对应的文件目录路径。)
*虚机环境下,请务必在此设置快照,方便回滚。
#5配置local.conf文件
早在2013年的时候localrc文件就被local.conf文件取代了。现在localrc文件仍然可用但是不提倡使用了。
在devstack文件路径下创建local.conf文件。这里给出两个简单配置。
以下配置文件出于测试阶段,部署在我笔记本上的时候还是有些问题。
ENTER A PASSWORD TO USE FOR THE DATABASE.
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
提示输入rabbit密码:
ENTER A PASSWORD TO USE FOR RABBIT.
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
提示输入服务密码:
ENTER A SERVICE_PASSWORD TO USE FOR THE SERVICE AUTHENTICATION.
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
提示输入keystone和horizon的密码:
ENTER A PASSWORD TO USE FOR HORIZON AND KEYSTONE (20 CHARS OR LESS).
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
总之配置的时候姿势不会会遇到各种和Python有关的问题。而且加入你第一次配置好了一次,当你用clean.sh脚本清除后再用不同的配置项配置的时候也会出现问题。(可能以前的没有删除干净?)
例如:
这个就是我在用第一个配置文件部署成功之后使用第二个部署文件配置报错。实际上我的pip是安装的。针对这种我还原快照到初始位置再配置就没发现过这样的问题了。
最后来个部署成功截图:
1 前期准备工作
真机环境win10Linux版本 centos-everything-7.0
VMware版本 VMwareworkstations12
虚机配置如下:
8G内存
2核cpu(开启虚拟化)
网络配置为桥接模式
/boot 500M(一定要分大点不然之后会遇到问题)
swap分区4G
其余的空间全部分给/分区
配置yum源,你可以保持装机自带的centos自带官方yum源,或者使用国内的给的镜像,本次试验中用的国外镜像并且使用fastestmirror,如果有需求的朋友们可以下载repo源自动构造本地yum源方法。
http://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-mitaka/
http://mirrors.163.com/centos/7/cloud/x86_64/openstack-mitaka/
安装fastestmirror插件
yum install yum-plugin-fastestmirror -y
rpm -qa | fastestmirror
vim /etc/yum/pluginconf.d/fastestmirror.conf
配置文件中的hostfilepath字段,用于定义yum源的配置文件,我们可以将所知道的yum源写入这个txt文件。
运行yum check-update检查是否配置生效
通常情况下,使用fastestmirror插件的默认设定即可满足使用要求。但在网络的某些特殊情况下,可能fastestmirror插件的判断不准确。这时,我们可以修改其ping响应值保存表:
vim /var/cache/yum/x86_64/7/timedhosts.txt
如果yum版本高的情况下这些工作都是由yum配置好的,我们只需要检查一下即可。
2
yum install -y gityum update 升级你现有系统,尽量避免各种包不兼容问题。(现在先别重启)
3
3 关闭selinuxvim /etc/selinux.config
SELINUX=disabled
关闭其他防火墙只保留iptables
systemctl mask ebtables
systemctl mask firewalld
systemctl mask ip6tables
systemctl enable iptables
至此重启机器让update的包应用。
如果在update升级之后发现boot分区空间不足,例如”XXX more space needed on the /boot filesystem”,需要对boot分区做扩容。
先把旧的boot分区进行备份,例如我想把它备份到/tmp/boot文件夹中
mkdir /tmp/boot
cp -r /boot/* /tmp/boot
umount /boot
然后对现有分区进行扩容或者新建分区,在笔者的实验环境中/boot分区只分了200M,在update的时候没有报错但是重启之后/boot分区就满了文件系统没有空余的分区,这个时候我只能在新加了一块500M的虚拟硬盘进去进行新分区了。这个时候需要先在分区表里面看一眼原来的分区是什么格式的,最好分成一样格式的。
vim /etc/fstab
这里我的虚机/boot分区是ext4所以我新划分的分区需要格式化成ext4格式
fdisk -l
这里我能看到我新划出来的/dev/sdb磁盘
fdisk /dev/sdb
partprobe
mkfs.ext4 /dev/sdb1
blkid
将拿到的UUID重新写入到/etc/fstab
此时重新挂载boot分区将/tmp/boot的文件拷贝到/boot分区即可。
4准备Devstack
mkdir -p /var/download/devstackcd /var/download/devstack
git clone https://github.com/openstack-dev/devstack.git -b stable/mitaka
可以在github官网上看到这个branche,我们做M版的自动化部署当然分支选M版的。
现在Devstack不能通过root身份来运行stack.sh文件了,需要创建stack用户,以stack用户的身份来运行stack.sh脚本。
cd /var/download/devstack/tools
./create-stac-user.sh
5.修改devstack目录权限,让stack用户可以运行
chown -R stack:stack /var/download/devstack
chmod 777 /dev/pts/0 (第一个用户登录,console的设备文件为/dev/pts/0,第二个为/dev/pts/1,以此类推。/dev/pts是远程登录(telnet,ssh等)后创建的控制台设备文件所在的目录)
chmod 777 /opt/stack -R
(这个是自动化部署openstack的时候的默认安装路径,默认安装路径可以在local.conf文件中修改,如果修改了就需要在这里重新设置相对应的文件目录路径。)
*虚机环境下,请务必在此设置快照,方便回滚。
#5配置local.conf文件
早在2013年的时候localrc文件就被local.conf文件取代了。现在localrc文件仍然可用但是不提倡使用了。
在devstack文件路径下创建local.conf文件。这里给出两个简单配置。
[[local|localrc]] # use TryStack git mirror GIT_BASE=http://git.trystack.cn NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git #OFFLINE=True RECLONE=True # Define images to be automatically downloaded during the DevStack built process. DOWNLOAD_DEFAULT_IMAGES=False IMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img" HOST_IP=192.168.1.6 # Credentials DATABASE_PASSWORD=pass ADMIN_PASSWORD=pass SERVICE_PASSWORD=pass SERVICE_TOKEN=pass RABBIT_PASSWORD=pass HORIZON_BRANCH=stable/mitaka KEYSTONE_BRANCH=stable/mitaka NOVA_BRANCH=stable/mitaka NEUTRON_BRANCH=stable/mitaka GLANCE_BRANCH=stable/mitaka CINDER_BRANCH=stable/mitaka #keystone KEYSTONE_TOKEN_FORMAT=UUID ##Heat HEAT_BRANCH=stable/mitaka enable_service h-eng h-api h-api-cfn h-api-cw ## Swift SWIFT_BRANCH=stable/mitaka ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account SWIFT_REPLICAS=1 SWIFT_HASH=011688b44136573e209e # 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 options Q_USE_SECGROUP=True FLOATING_RANGE="192.168.1.0/24" FIXED_RANGE="10.0.0.0/24" Q_FLOATING_ALLOCATION_POOL=start=192.168.1.10,end=192.168.1.20 PUBLIC_NETWORK_GATEWAY="192.168.1.1" 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 # #VLAN configuration. Q_PLUGIN=ml2 ENABLE_TENANT_VLANS=True # Logging LOGFILE=/opt/stack/logs/stack.sh.log VERBOSE=True LOG_COLOR=True SCREEN_LOGDIR=/opt/stack/logs
以下配置文件出于测试阶段,部署在我笔记本上的时候还是有些问题。
[[local|localrc]] # use TryStack git mirror GIT_BASE=http://git.trystack.cn NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git #Define branches HORIZON_BRANCH=stable/mitaka KEYSTONE_BRANCH=stable/mitaka NOVA_BRANCH=stable/mitaka NEUTRON_BRANCH=stable/mitaka GLANCE_BRANCH=stable/mitaka CINDER_BRANCH=stable/mitaka CEILOMETER_BRANCH=stable/mitaka SWIFT_BRANCH=stable/mitaka #OFFLINE=True RECLONE=True #Directory DEST=/var/openstack #Define target server IP address HOST_IP=192.168.1.6 # Define images to be automatically downloaded during the DevStack built process. DOWNLOAD_DEFAULT_IMAGES=False IMAGE_URLS="http://foo.bar.com/image.qcow," IMAGE_URLS+="http://foo.bar.com/image2.qcow" IMAGE_URLS+="http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso" # Credentials DATABASE_PASSWORD=pass ADMIN_PASSWORD=pass SERVICE_PASSWORD=pass SERVICE_TOKEN=pass RABBIT_PASSWORD=pass # Logging LOGFILE=$DEST/logs/stack.sh.log LOGDAYS=1 LOGDIR=$DEST/logs SYSLOG=True SYSLOG_HOST=$HOST_IP SYSLOG_PORT=516 VERBOSE=True LOG_COLOR=True SCREEN_LOGDIR=/opt/stack/logs #Python option USE_VENV=True PIP_UPGRADE=True PROJECT_VENV["glance"]=${GLANCE_DIR}.VENV PROJECT_VENV["nova"]=${NOVA_DIR}.VENV PROJECT_VENV["keystone"]=${KEYSTONE_DIR}.VENV PROJECT_VENV["neutron"]=${NEUTRON_DIR}.VENV PROJECT_VENV["cinder"]=${CINDER_DIR}.VENV PROJECT_VENV["swift"]=${SWIFT_DIR}.VENV PROJECT_VENV["glance"]=${GLANCE_DIR}.VENV PROJECT_VENV["heat"]=${HEAT_DIR}.VENV ADDITIONAL_VENV_PACKAGES="python-foo,python-bar" #Define default instance standard DEFAULT_INSTANCE_TYPE=m1.tiny #keystone KEYSTONE_TOKEN_FORMAT=UUID KEYSTONE_USE_MOD_WSGI="True" ENABLE_IDENTITY_V2=False ##vnc ENABLED_SERVICES+=,n-spice,n-novnc,n-xvnc ##Glance ENABLED_SERVICES+=,g-api.g-reg ##Heat HEAT_BRANCH=stable/mitaka enable_service h-eng h-api h-api-cfn h-api-cw h-eng Heat_USE_MOD_WSGI="True" ## Swift SWIFT_BRANCH=stable/mitaka ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account SWIFT_REPLICAS=1 SWIFT_HASH=011688b44136573e209e SWIFT_USE_MOD_WSGI="True" # Enabling Neutron (network) Service disable_service n-net ##Do not use nova network 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 options Q_USE_SECGROUP=True FLOATING_RANGE="192.168.1.0/24" FIXED_RANGE="10.0.0.0/24" Q_FLOATING_ALLOCATION_POOL=start=192.168.1.10,end=192.168.1.20 PUBLIC_NETWORK_GATEWAY="192.168.1.1" 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 # #VLAN configuration. Q_PLUGIN=ml2 ENABLE_TENANT_VLANS=True ##Cinder ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak CINDER_USE_MOD_WSGI="True" VOLUME_GROUP="stack-volumes" VOLUME_NAME_PREFIX="volume-" VOLUME_BACKING_FILE_SIZE=10250M ##Ceilometer ENABLED_SERVICES+=,ceilometer-acomputer,ceilometer-acentral,ceilometer-collector,ceilometer-api ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval ENABLED_SERVICES+=,trove,tr-api,tr-tmgr,tc-cond #Apache APACHE_ENABLED_SERVICES+=,keystone
6 后话
如果在一开始配置文件中没有注明各项密码的话,/stack.sh会交互式让你输入密码。而且密码最好写在配置文件靠前的位置,我尝试写在靠后的位置还是会一样提示让我输入密码。ENTER A PASSWORD TO USE FOR THE DATABASE.
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
提示输入rabbit密码:
ENTER A PASSWORD TO USE FOR RABBIT.
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
提示输入服务密码:
ENTER A SERVICE_PASSWORD TO USE FOR THE SERVICE AUTHENTICATION.
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
提示输入keystone和horizon的密码:
ENTER A PASSWORD TO USE FOR HORIZON AND KEYSTONE (20 CHARS OR LESS).
This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it
again. Use only alphanumeric characters.
If you leave this blank, a random default value will be used.
Enter a password now:
总之配置的时候姿势不会会遇到各种和Python有关的问题。而且加入你第一次配置好了一次,当你用clean.sh脚本清除后再用不同的配置项配置的时候也会出现问题。(可能以前的没有删除干净?)
例如:
这个就是我在用第一个配置文件部署成功之后使用第二个部署文件配置报错。实际上我的pip是安装的。针对这种我还原快照到初始位置再配置就没发现过这样的问题了。
最后来个部署成功截图:
相关文章推荐
- openstack kilo-with-dokcer
- 什么是OpenStack 开源的云计算管理平台项目
- openstack(juno版)使用rsyslog转发日志
- OpenStack Murano Dashboard(Kilo)安装
- Openstack Murano(Kilo) 网络排错
- Openstack Murano(kilo)二次开发之添加Volume
- Openstack Horizon(kilo)二次开发之匿名访问View
- Ubuntu源码安装Openstack(一)
- Ubuntu源码安装Openstack(二)
- openstack开发之--zabbix被坑的地方
- 仿OpenStack开发云计算管理软件”--第1周:熟悉开发环境
- 【原创】OpenStack Swift源码分析(二)ring文件的生成
- 【原创】Swift服务启动架构分析
- 【原创】OpenStack Swift源码分析(三)proxy服务启动
- 【原创】OpenStack Swift源码分析(四)proxy服务响应
- 【原创】OpenStack Swift源码分析(五)keystone鉴权
- Swift中的一致性哈希算法分析
- 【原创】OpenStack Swift源码分析(六)object服务
- 【原创】OpenStack Swift源码分析(七)Replication服务
- 【原创】OpenStack Swift源码分析(八)Updater && Auditor服务