收藏 分销(赏)

Openstack部署手册.docx

上传人:仙人****88 文档编号:8991168 上传时间:2025-03-10 格式:DOCX 页数:21 大小:48.26KB 下载积分:10 金币
下载 相关 举报
Openstack部署手册.docx_第1页
第1页 / 共21页
Openstack部署手册.docx_第2页
第2页 / 共21页


点击查看更多>>
资源描述
目录 一、服务器配置 2 二、组件安装 3 三、数据库安装配置 4 四、Keystone配置 4 五、glance配置 7 六、nova配置 8 七、dashboard配置 11 八、镜像制作 11 附件一:配置文件 11 附件二:安装错误处理 18 一、服务器配置 1、下载ubuntu 12.04. 服务器版本。 地址: 2、安装OS 操作系统最小化安装,只需要安装ssh server,其他组件不需要。 操作系统安装好需要更新源里的包、系统。确保装的是最新版本的包。命令如下: apt-get update apt-get upgrade 注:更新时网络代理配置如下: root@ubuntu:/opt# cat /etc/apt/apt.conf Acquire::http::Proxy "http://133.64.81.236:8080/"; 3、root权限 zhang@ubuntu:~$ sudo passwd [sudo] password for zhang: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 4、网络配置 root@ubuntu:/opt# cat /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 133.64.96.26 netmask 255.255.255.128 network 133.64.96.0 broadcast 133.64.96.127 gateway 133.64.96.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 133.64.96.1 auto eth1 iface eth1 inet static address 192.168.3.130 netmask 255.255.255.128 network 192.168.3.128 broadcast 192.168.3.255 二、组件安装 1、bridge配置 使用apt-get安装如下: apt-get install bridge-utils /etc/init.d/networking restart 2、NTP配置 apt-get install ntp 编辑 /etc/ntp.conf 在末尾添加下面3行 server iburst server 127.127.1.0 fudge 127.127.1.0 stratum 10 重启服务 service ntp restart 3、iscsi配置 apt-get install tgt /etc/init.d/tgt start apt-get install open-iscsi open-iscsi-utils 4、rabbitmq配置 apt-get install rabbitmq-server memcached python-memcache apt-get install kvm libvirt-bin 三、数据库安装配置 1、安装数据库 apt-get install mysql-server python-mysqldb 编辑/etc/mysql/f, 允许网络访问mysql #bind-address = 127.0.0.1 bind-address = 0.0.0.0 重启mysql服务 /etc/init.d/mysql restart 2、创建相关数据库 mysql -uroot -p123456 CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456'; CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123456'; CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'IDENTIFIED BY '123456'; quit 四、Keystone配置 1、keystone的安装 apt-get install keystone python-keystone python-keystoneclient 2、keystone配置 编辑/etc/keystone/keystone.conf [DEFAULT] #bind_host = 0.0.0.0 public_port = 5000 admin_port = 35357 #admin_token = ADMIN admin_token = admin [sql] #connection = sqlite:////var/lib/keystone/keystone.db connection = mysql://keystone:123456@133.64.96.26/keystone 3、重启服务 service keystone restart 4、同步数据库 keystone-manage db_sync 5、导入数据和endpoint 为了方便,你可以直接使用下面2个脚本来进行全部的设置 (1)、keystone_data.sh 导入用户信息 wget mv keystone_data.sh_.txt keystone_data.sh chmod +x keystone_data.sh 对于keystone_data.sh 脚本,默认的登陆dashboard的密码是:chenshake,Token是chenshake。 你可以根据你的情况进行调整。 第一行是登陆dashboard的密码。 第三行是上面设置的Keystone的Token ADMIN_PASSWORD=${ADMIN_PASSWORD:-123456} SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD} #export SERVICE_TOKEN="chenshake" export SERVICE_TOKEN="admin" export SERVICE_ENDPOINT="http://localhost:35357/v2.0" SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} ENABLED_SERVICES="swift" 验证是否正常 ./keystone_data.sh 没任何输出,就表示正确 echo $? 显示0,就表示脚本正确运行 (2)、endpoints.sh 设置endpoint wget mv endpoints.sh_.txt endpoints.sh chmod +x endpoints.sh 这个脚本运行,需要使用不少参数 ./endpoints.sh -m 133.64.96.26 -u keystone -D keystone -p 123456 -T admin -K 133.64.96.26 -R RegionOne -E "http://localhost:35357/v2.0" -S 133.64.96.26 参数说明 -m mysql_hostname -u mysql_username -D mysql_database -p mysql_password -K keystone 服务器IP -R keystone_region -E keystone_endpoint_url -S swift proxy节点IP -T keystone_token 正常运行,会输出一堆内容。 (3)、设置环境变量 root@server1:~# Vi ~/.bashrc.或/etc/profile 在文件末尾处 export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=123456 export OS_AUTH_URL=http://localhost:5000/v2.0/ 验证: root@server1:~#source ~/.bashrc.或/etc/profile root@server1:~# export | grep OS_ declare -x OS_AUTH_URL="http://localhost:5000/v2.0/" declare -x OS_PASSWORD="123456" declare -x OS_TENANT_NAME="admin" declare -x OS_USERNAME="admin" 6、测试keyston是否正确安装 keystone user-list keystone endpoint-list keystone tenant-list keystone user-list keystone role-list 如: 若测试成功说明keystone安装正确。 五、glance配置 1、glance安装 apt-get install glance glance-api glance-client glance-common glance-registry python-glance 2、glance配置 编辑 /etc/glance/glance-api-paste.ini,/etc/glance/glance-registry-paste.ini,两个文件,都是修改文档最后3行 #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% admin_tenant_name = service admin_user = glance admin_password = 123456 #dashboard password 编辑/etc/glance/glance-registry.conf,改成使用mysql验证 #sql_connection = sqlite:////var/lib/glance/glance.sqlite sql_connection = mysql://glance:123456@122.204.144.201/glance 编辑/etc/glance/glance-registry.conf 和 /etc/glance/glance-api.conf ,都在文件末尾添加两行 [paste_deploy] flavor = keystone 3、glance 同步数据库 glance-manage version_control 0 glance-manage db_sync 4、重启服务 service glance-api restart && service glance-registry restart 5、设置永久环境变量 修改 ~/.bashrc.或/etc/profile , 在末尾添加下面内容 export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=123456 export OS_AUTH_URL=http://localhost:5000/v2.0/ 注:在keystone中设置过环境变量后无需再配置环境变量。 6、测试glance glance index 没有输出,表示正常,因为目前还没有镜像。 六、nova配置 1、安装nova apt-get install nova-api nova-cert nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler nova-volume rabbitmq-server novnc nova-consoleauth 2、配置nova 使用vi /etc/nova/nova.conf编辑该文件修改。 外网地址133.64.96.26。内网地址192.168.4.130。 --dhcpbridge_flagfile=/etc/nova/nova.conf --dhcpbridge=/usr/bin/nova-dhcpbridge --logdir=/var/log/nova --state_path=/var/lib/nova --lock_path=/run/lock/nova --allow_admin_api=true --use_deprecated_auth=false --auth_strategy=keystone --scheduler_driver=nova.scheduler.simple.SimpleScheduler --s3_host=133.64.96.26 --ec2_host=133.64.96.26 --rabbit_host=133.64.96.26 --cc_host=133.64.96.26 --nova_url=http://133.64.96.26:8774/v1.1/ --routing_source_ip=133.64.96.26 --glance_api_servers=133.64.96.26:9292 --image_service=nova.image.glance.GlanceImageService --iscsi_ip_prefix=192.168.4 --sql_connection=mysql://nova:123456@133.64.96.26/nova --ec2_url=http://133.64.96.26:8773/services/Cloud --keystone_ec2_url=http://133.64.96.26:5000/v2.0/ec2tokens --api_paste_config=/etc/nova/api-paste.ini --libvirt_type=kvm --libvirt_use_virtio_for_bridges=true --start_guests_on_host_boot=true --resume_guests_state_on_host_boot=true # vnc specific configuration --novnc_enabled=true --novncproxy_base_url=http://133.64.96.26:6080/vnc_auto.html --vncserver_proxyclient_address=133.64.96.26 --vncserver_listen=133.64.96.26 # network specific settings --network_manager=work.manager.FlatDHCPManager --public_interface=eth0 --flat_interface=eth1 --flat_network_bridge=br100 --fixed_range=192.168.4.130/25 --floating_range=133.64.96.26/25 --network_size=32 --flat_network_dhcp_start=192.168.4.162 --flat_injected=False --force_dhcp_release --iscsi_helper=tgtadm --connection_type=libvirt --root_helper=sudo nova-rootwrap --verbose 使用vi /etc/nova/api-paste.ini编辑文件修改! #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% admin_tenant_name = service admin_user = nova admin_password = 123456 3、相关服务重启 /etc/init.d/libvirt-bin restart /etc/init.d/nova-network restart /etc/init.d/nova-compute restart /etc/init.d/nova-api restart /etc/init.d/nova-objectstore restart /etc/init.d/nova-scheduler restart /etc/init.d/nova-volume restart /etc/init.d/nova-consoleauth restart 4、同步数据库 nova-manage db sync 5、设置目录权限 chown -R nova:nova /etc/nova chmod 644 /etc/nova/nova.conf 6、创建fix ip(内网ip) nova-manage network create private --fixed_range_v4=192.168.4.130/25 --num_networks=1 --bridge=br100 --bridge_interface=eth1 --network_size=32 7、创建floating IP(公网ip) nova-manage floating create --ip_range=133.64.96.26/25 8、重启服务 /etc/init.d/libvirt-bin restart /etc/init.d/nova-network restart /etc/init.d/nova-compute restart /etc/init.d/nova-api restart /etc/init.d/nova-objectstore restart /etc/init.d/nova-scheduler restart /etc/init.d/nova-volume restart /etc/init.d/nova-consoleauth restart 9、验证测试 nova-manage service list nova list nova image-list nova floating-ip-create nova flavor-list nova secgroup-list nova secgroup-list-rules default 10、开放远程连接端口 nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 七、dashboard配置 1、安装dashboard apt-get install openstack-dashboard 2、重启apache service apache2 restart 八、镜像制作 下载官方做好的ubuntu镜像即可 wget http://cloud- 上传镜像 glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true container_format=ovf disk_format=qcow2 < /root/precise-server-cloudimg-amd64-disk1.img 附件一:配置文件 keystone_data.sh #!/bin/bash # # Initial data for Keystone using python-keystoneclient # # Tenant User Roles # ------------------------------------------------------------------ # admin admin admin # service glance admin # service nova admin, [ResellerAdmin (swift only)] # service quantum admin # if enabled # service swift admin # if enabled # demo admin admin # demo demo Member, anotherrole # invisible_to_admin demo Member # # Variables set before calling this script: # SERVICE_TOKEN - aka admin_token in keystone.conf # SERVICE_ENDPOINT - local Keystone admin endpoint # SERVICE_TENANT_NAME - name of tenant containing service accounts # ENABLED_SERVICES - stack.sh's list of services to start # DEVSTACK_DIR - Top-level DevStack directory #ADMIN_PASSWORD=${ADMIN_PASSWORD:-chenshake} ADMIN_PASSWORD=${ADMIN_PASSWORD:-$OS_PASSWORD} #SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD} #export SERVICE_TOKEN="chenshake" #export SERVICE_ENDPOINT="http://localhost:35357/v2.0" SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} ENABLED_SERVICES="swift" function get_id () { echo `$@ | awk '/ id / { print $4 }'` } # Tenants ADMIN_TENANT=$(get_id keystone tenant-create --name=admin) SERVICE_TENANT=$(get_id keystone tenant-create --name=$SERVICE_TENANT_NAME) #DEMO_TENANT=$(get_id keystone tenant-create --name=demo) #INVIS_TENANT=$(get_id keystone tenant-create --name=invisible_to_admin) # Users ADMIN_USER=$(get_id keystone user-create --name=admin \ --pass="$ADMIN_PASSWORD" \ --email=admin@) #DEMO_USER=$(get_id keystone user-create --name=demo \ # --pass="$ADMIN_PASSWORD" \ # --email=demo@) # Roles ADMIN_ROLE=$(get_id keystone role-create --name=admin) KEYSTONEADMIN_ROLE=$(get_id keystone role-create --name=KeystoneAdmin) KEYSTONESERVICE_ROLE=$(get_id keystone role-create --name=KeystoneServiceAdmin) # ANOTHER_ROLE demonstrates that an arbitrary role may be created and used # TODO(sleepsonthefloor): show how this can be used for rbac in the future! ANOTHER_ROLE=$(get_id keystone role-create --name=anotherrole) # Add Roles to Users in Tenants keystone user-role-add --user $ADMIN_USER --role $ADMIN_ROLE --tenant_id $ADMIN_TENANT #keystone user-role-add --user $ADMIN_USER --role $ADMIN_ROLE --tenant_id $DEMO_TENANT #keystone user-role-add --user $DEMO_USER --role $ANOTHER_ROLE --tenant_id $DEMO_TENANT # TODO(termie): these two might be dubious keystone user-role-add --user $ADMIN_USER --role $KEYSTONEADMIN_ROLE --tenant_id $ADMIN_TENANT keystone user-role-add --user $ADMIN_USER --role $KEYSTONESERVICE_ROLE --tenant_id $ADMIN_TENANT # The Member role is used by Horizon and Swift so we need to keep it: MEMBER_ROLE=$(get_id keystone role-create --name=Member) #keystone user-role-add --user $DEMO_USER --role $MEMBER_ROLE --tenant_id $DEMO_TENANT #keystone user-role-add --user $DEMO_USER --role $MEMBER_ROLE --tenant_id $INVIS_TENANT # Configure service users/roles NOVA_USER=$(get_id keystone user-create --name=nova \ --pass="$SERVICE_PASSWORD" \ --tenant_id $SERVICE_TENANT \ --email=nova@) keystone user-role-add --tenant_id $SERVICE_TENANT \ --user $NOVA_USER \ --role $ADMIN_ROLE GLANCE_USER=$(get_id keystone user-create --name=glance \ --pass="$SERVICE_PASSWORD" \ --tenant_id $SERVICE_TENANT \ --email=glance@) keystone user-role-add --tenant_id $SERVICE_TENANT \ --user $GLANCE_USER \ --role $ADMIN_ROLE if [[ "$ENABLED_SERVICES" =~ "swift" ]]; then SWIFT_USER=$(get_id keystone user-create --name=swift \ --pass="$SERVICE_PASSWORD" \ --tenant_id $SERVICE_TENANT \ --email=swift@) keystone user-role-add --tenant_id $SERVICE_TENANT \ --user $SWIFT_USER \ --role $ADMIN_ROLE # Nova needs ResellerAdmin role to download images when accessing # swift through the s3 api. The admin role in swift allows a user # to act as an admin for their tenant, but ResellerAdmin is needed # for a user to act as any tenant. The name of this role is also # configurable in swift-proxy.conf RESELLER_ROLE=$(get_id keystone role-create --name=ResellerAdmin) keystone user-role-add --tenant_id $SERVICE_TENANT \ --user $NOVA_USER \ --role $RESELLER_ROLE fi if [[ "$ENABLED_SERVICES" =~ "quantum" ]]; then QUANTUM_USER=$(get_id keystone
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服