设为首页 收藏本站
查看: 1491|回复: 0

[经验分享] Ubuntu12.04下配置安装OpenStack(ESSEX)

[复制链接]

尚未签到

发表于 2015-4-11 17:17:22 | 显示全部楼层 |阅读模式
  本流程主要参考官方文档,有少许改动,暂时未装swift,按照此流程笔者安装成功。
  
  从ALL-IN-ONE到多台部署,笔者遇到太多问题,物理环境换了几波。现在实验环境为:
  DELL PowerEdgeR710服务器两台、笔记本一台、Ubuntu12.04-server系统。
  
  提一下必须的参数:
  两台R710都四块网卡,这里只需要两块,eth0都连到实验室交换机,两机eth1直连。
  R710两块硬盘,控制节点匀出一块做swift;计算节点两块硬盘做Raid 0。
  
  控制节点安装所有组件,计算节点仅仅安装nova-compute模块,笔记本也是ubuntu系统,做client用(上传镜像之类的工作)。
  
  配置
  
  控制节点
  计算节点
  用户机
  安装组件
  所有组件
  nova-compute
  
  网络接口
  eth0-Public/eth1-Private
  eth0-Public/eth1-Private
  eth0-Public
  IP地址
  eth0-192.168.1.22
  eth1-10.10.10.22
  eth0-192.168.1.21
  eth1-10.10.10.21
  eth0-192.168.1.125
  DNS服务器
  192.168.0.1
  192.168.0.1
  192.168.0.1
  网关
  192.168.0.1
  192.168.0.1
  192.168.0.1
  主机名
  OpenStack-center22
  OpenStack-nc21
  
  
  
  
  Part:控制节点
  换了源以后重新update一把
  sudo apt-get update
  sudo apt-get upgrade
  
  安装网桥组件
  sudo apt-get install bridge-utils
  
  修改配置文件/etc/network/interfaces如下
  
  # The loopback network interface
  auto lo
  iface lo inet loopback
  
  # The primary network interface
  auto eth0
  iface eth0 inet static
          address 192.168.1.22
          netmask 255.255.0.0
          network 192.168.0.0
          broadcast 192.168.255.255
          gateway 192.168.0.1
          dns-nameservers 192.168.0.1
          dns-search NDSL
  
  auto eth1
  iface eth1 inet static
          address 10.10.10.22
          netmask 255.255.255.0
          network 10.10.10.0
          broadcast 10.10.10.255
  
  重启network服务
  sudo /etc/init.d/networking restart
  
  安装NTP server
  sudo apt-get install ntp
  
  修改配置文件/etc/ntp.conf添加如下代码
  
  server ntp.ubuntu.com
  server 127.127.1.0
  fudge 127.127.1.0 stratum 10
  
  重启NTP服务
  sudo service ntp restart
  
  安装数据库
  sudo apt-get install mysql-server python-mysqldb
  
  安装的时候会要求输入用户自己密码,这里我们用’password’代替。
  
  修改配置文件/etc/mysql/my.cnf
  把bind-address一栏的127.0.0.1改为0.0.0.0,即如下
  bind-address = 0.0.0.0
  
  重启mysql服务器
  sudo restart mysql
  
  创建三个数据库,及其管理员
  sudo mysql -uroot -ppassword -e 'CREATE DATABASE nova;'
  sudo mysql -uroot -ppassword -e 'CREATE USER novadbadmin;'
  sudo mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON nova.* TO
  'novadbadmin'@'%';"
  sudo mysql -uroot -ppassword -e "SET PASSWORD FOR 'novadbadmin'@'%' =
  PASSWORD('novasecret');"
  
  sudo mysql -uroot -ppassword -e 'CREATE DATABASE glance;'
  sudo mysql -uroot -ppassword -e 'CREATE USER glancedbadmin;'
  sudo mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON glance.* TO
  'glancedbadmin'@'%';"
  sudo mysql -uroot -ppassword -e "SET PASSWORD FOR 'glancedbadmin'@'%' =
  PASSWORD('glancesecret');"
  
  sudo mysql -uroot -ppassword -e 'CREATE DATABASE keystone;'
  sudo mysql -uroot -ppassword -e 'CREATE USER keystonedbadmin;'
  sudo mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON keystone.* TO
  'keystonedbadmin'@'%';"
  sudo mysql -uroot -ppassword -e "SET PASSWORD FOR 'keystonedbadmin'@'%' =
  PASSWORD('keystonesecret');"
  
  安装keystone
  sudo apt-get install keystone python-keystone python-keystoneclient
  
  修改配置文件/etc/keystone/keystone.conf,有两处修改,修改如下
  …
  admin_token = admin
  …
  connection = mysql://keystonedbadmin:keystonesecret@192.168.1.22/keystone
  …
  
  重启keystone服务
  sudo service keystone restart
  sudo keystone-manage db_sync
  
  设置环境变量
  export SERVICE_ENDPOINT="http://192.168.1.22:35357/v2.0"
  export SERVICE_TOKEN=admin
  
  创建Tenant
  keystone tenant-create --name admin
  keystone tenant-create --name service
  
  创建User
  keystone user-create --name admin --pass admin
  keystone user-create --name nova --pass nova
  keystone user-create --name glance --pass glance
  //keystone user-create --name swift --pass swift
  
  创建Role
  keystone role-create --name admin
  keystone role-create --name Member
  
  ps:role的权限的管理在/etc/相应服务/policy.conf里面做更改
  
  查看刚创建tenant、user、role的id,下条命令要用
  keystone tenant-list
  keystone user-list
  keystone role-list
  
  把role赋予user,并分配到tenant
  利用上面的命令看到的id来替换本文中的各id
  
  先把Role ‘admin’ 赋予 User ‘admin’, 再分配到Tenant ‘admin’
  keystone user-role-add --user b3de3aeec2544f0f90b9cbfe8b8b7acd --role
  2bbe305ad531434991d4281aaaebb700 --tenant_id 7f95ae9617cd496888bc412efdceabfd
  再把Role ‘Member’ 赋予 User ‘admin’, 再分配到Tenant ‘admin’
  keystone user-role-add --user b3de3aeec2544f0f90b9cbfe8b8b7acd --role
  d983800dd6d54ee3a1b1eb9f2ae3291f --tenant_id 7f95ae9617cd496888bc412efdceabfd
  
  把Role ‘admin’ 赋予 User ‘nova’, ‘glance’, ‘swift’, 再分配到Tenant ‘service’
  keystone user-role-add --user ce8cd56ca8824f5d845ba6ed015e9494 --role
  2bbe305ad531434991d4281aaaebb700 --tenant_id c7970080576646c6959ee35970cf3199
  keystone user-role-add --user 518b51ea133c4facadae42c328d6b77b --role
  2bbe305ad531434991d4281aaaebb700 --tenant_id c7970080576646c6959ee35970cf3199
  //keystone user-role-add --user 1b986cca67e242f38cd6aa4bdec587ca --role
  2bbe305ad531434991d4281aaaebb700 --tenant_id c7970080576646c6959ee35970cf3199
  
  创建服务
  keystone service-create --name nova --type compute --description 'OpenStack
  Compute Service'
  keystone service-create --name volume --type volume --description 'OpenStack
  Volume Service'
  keystone service-create --name glance --type image --description 'OpenStack
  Image Service'
  //keystone service-create --name swift --type object-store --description
  'OpenStack Storage Service'
  keystone service-create --name keystone --type identity --description
  'OpenStack Identity Service'
  keystone service-create --name ec2 --type ec2 --description 'EC2 Service'
  
  查看刚创建service的id
  keystone service-list
  
  创建endpoint
  创建nova-compute的endpoint
  keystone endpoint-create --region myregion --service_id 1e93ee6c70f8468c88a5cb1b106753f3 –publicurl 'http://192.168.1.22:8774/v2/$(tenant_id)s' --adminurl 'http://192.168.1.22:8774/v2/$(tenant_id)s' --internalurl 'http://192.168.1.22:8774/v2/$(tenant_id)s'
  创建nova-volume的endpoint
  keystone endpoint-create --region myregion --service_id f38f4564ff7b4e43a52b2f5c1b75e5fa –publicurl 'http://192.168.1.22:8776/v1/$(tenant_id)s' --adminurl 'http://192.168.1.22:8776/v1/$(tenant_id)s' --internalurl 'http://192.168.1.22:8776/v1/$(tenant_id)s'
  创建glance的endpoint
  keystone endpoint-create --region myregion --service_id fbafab6edcab467bb734380ce6be3561 --publicurl 'http://192.168.1.22:9292/v1' --adminurl 'http://192.168.1.22:9292/v1' –internalurl 'http://192.168.1.22:9292/v1'
  //创建swift的endpoint
  //keystone endpoint-create --region myregion --service_id 96f35e1112b143e59d5cd5d0e6a8b22d –publicurl 'http://192.168.1.22:8080/v1/AUTH_$(tenant_id)s' --adminurl 'http://192.168.1.22:8080/v1' –internalurl 'http://192.168.1.22:8080/v1/AUTH_$(tenant_id)s'
  创建keystone的endpoint
  keystone endpoint-create --region myregion --service_id 7d4ec192dfa1456996f0f4c47415c7a7 --publicurl http://192.168.1.22:5000/v2.0 --adminurl http://192.168.1.22:35357/v2.0 --internalurl http://192.168.1.22:5000/v2.0
  创建ec2的endpoint
  keystone endpoint-create --region myregion --service_id 28fd92ffe3824004996a3e04e059d875 –publicurl http://192.168.1.22:8773/services/Cloud --adminurl http://192.168.1.22:8773/services/Admin --internalurl http://192.168.1.22:8773/services/Cloud
  
  安装glance
  sudo apt-get install glance glance-api glance-client glance-common glanceregistry python-glance
  
  修改配置文件/etc/glance/glance-api-paste.ini和/etc/glance/glance-registry-paste.ini
  原文
  admin_tenant_name = %SERVICE_TENANT_NAME%
  admin_user = %SERVICE_USER%
  admin_password = %SERVICE_PASSWORD%
  改为
  admin_tenant_name = service
  admin_user = glance
  admin_password = glance
  
  修改配置文件/etc/glance/glance-registry.conf,一处改动一处添加
  改动
  sql_connection = mysql://glancedbadmin:glancesecret@192.168.1.22/glance
  在末尾添加
  [paste_deploy]
  flavor = keystone
  
  修改配置文件/etc/glance/glance-api.conf
  在末尾添加
  [paste_deploy]
  flavor = keystone
  
  执行命令
  sudo glance-manage version_control 0
  sudo glance-manage db_sync
  sudo restart glance-api
  sudo restart glance-registry
  
  设置环境变量
  export OS_TENANT_NAME=admin
  export OS_USERNAME=admin
  export OS_PASSWORD=admin
  export OS_AUTH_URL="http://192.168.1.22:5000/v2.0/"
  
  安装nova
  sudo apt-get install nova-api nova-cert nova-compute nova-compute-kvm novadoc
  nova-network nova-objectstore nova-scheduler nova-volume rabbitmq-server
  novnc nova-consoleauth
  
  修改配置文件/etc/nova/nova.conf,里面的东西根据自己的需要来改
  --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=192.168.1.22
  --ec2_host=192.168.1.22
  --rabbit_host=192.168.1.22
  --cc_host=192.168.1.22
  --nova_url=http://192.168.1.22:8774/v1.1/
  --routing_source_ip=192.168.1.22
  --glance_api_servers=192.168.1.22:9292
  --image_service=nova.image.glance.GlanceImageService
  --iscsi_ip_prefix=10.0.0
  --sql_connection=mysql://novadbadmin:novasecret@192.168.
  1.22/nova
  --ec2_url=http://192.168.1.22:8773/services/Cloud
  --keystone_ec2_url=http://192.168.1.22:5000/v2.0/ec2toke
  ns
  --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://192.168.1.22:6080/vnc_auto.
  html
  --vncserver_proxyclient_address=192.168.1.22
  --vncserver_listen=192.168.1.22
  # network specific settings
  --network_manager=nova.network.manager.FlatDHCPManager
  --public_interface=eth0
  --flat_interface=eth1
  --flat_network_bridge=br100
  --fixed_range=10.0.0.1/27
  --floating_range=192.168.12.0/27
  --network_size=32
  --flat_network_dhcp_start=10.0.0.33
  --flat_injected=False
  --force_dhcp_release
  --iscsi_helper=tgtadm
  --connection_type=libvirt
  --root_helper=sudo nova-rootwrap
  --verbose
  
  创建物理卷(我是留了100G的空间出来给volume用)
  sudo pvcreate /dev/sda6
  sudo vgcreate nova-volumes /dev/sda6
  
  执行以下命令
  sudo chown -R nova:nova /etc/nova
  sudo chmod 644 /etc/nova/nova.conf
  
  修改配置文件/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 = nova
  
  执行以下命令
  sudo nova-manage db sync
  
  重启所有nova服务
  sudo restart libvirt-bin; sudo restart nova-network; sudo restart novacompute;
  sudo restart nova-api; sudo restart nova-objectstore; sudo restart
  nova-scheduler; sudo restart nova-volume; sudo restart nova-cert; sudo restart nova-consoleauth;
  
  利用nova-manage service list可以查看服务当前状况
  如果state都是笑脸:-)就没问题
  
  安装Dashboard
  sudo apt-get install openstack-dashboard
  
  重启apache服务
  sudo service apache2 restart
  
  这时你可以通过192.168.1.22利用浏览器访问dashboard,用户名/密码:admin/admin
  
  Part:计算节点
  换了源以后重新update一把
  sudo apt-get update
  sudo apt-get upgrade
  
  安装网桥组件
  sudo apt-get install bridge-utils
  
  修改配置文件/etc/network/interfaces如下
  
  # The loopback network interface
  auto lo
  iface lo inet loopback
  
  # The primary network interface
  auto eth0
  iface eth0 inet static
          address 192.168.1.21
          netmask 255.255.0.0
          network 192.168.0.0
          broadcast 192.168.255.255
          gateway 192.168.0.1
          dns-nameservers 192.168.0.1
          dns-search NDSL
  
  auto eth1
  iface eth1 inet static
          address 10.10.10.21
          netmask 255.255.255.0
          network 10.10.10.0
          broadcast 10.10.10.255
  
  重启network服务
  sudo /etc/init.d/networking restart
  
  安装NTP server
  sudo apt-get install ntp
  
  修改/etc/ntp.conf文件
  添加
  Server 192.168.1.22
  与控制节点联系起来
  
  重启ntp
  sudo service ntp restart
  
  安装nova-compute
  sudo apt-get install nova-compute
  
  修改配置文件/etc/nova/nova.conf
  --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=192.168.1.22
  --ec2_host=192.168.1.22
  --rabbit_host=192.168.1.22
  --cc_host=192.168.1.22
  --nova_url=http://192.168.1.22:8774/v1.1/
  --routing_source_ip=192.168.1.22
  --glance_api_servers=192.168.1.22:9292
  --image_service=nova.image.glance.GlanceImageService
  --iscsi_ip_prefix=10.0.0
  --sql_connection=mysql://novadbadmin:novasecret@192.168.
  1.22/nova
  --ec2_url=http://192.168.1.22:8773/services/Cloud
  --keystone_ec2_url=http://192.168.1.22:5000/v2.0/ec2toke
  ns
  --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://192.168.1.22:6080/vnc_auto.Html
  --vncserver_proxyclient_address=192.168.1.21
  --vncserver_listen=192.168.1.21
  
  //ps:上面这三行与官网配置文档中不一致,官网的全是192.168.1.22,结果是没法在计算节点上跑虚拟机,下面两行改了以后就可以了。
  
  # network specific settings
  --network_manager=nova.network.manager.FlatDHCPManager
  --public_interface=eth0
  --flat_interface=eth1
  --flat_network_bridge=br100
  --fixed_range=10.0.0.1/27
  --floating_range=192.168.12.0/27
  --network_size=32
  --flat_network_dhcp_start=10.0.0.33
  --flat_injected=False
  --force_dhcp_release
  --iscsi_helper=tgtadm
  --connection_type=libvirt
  --root_helper=sudo nova-rootwrap
  --verbose
  
  
  重启nova-compute服务
  sudo service restart nova-compute
  
  同样,可以查看服务状况
  sudo nova-manage service list
  
  客户机
  最好是图形化界面的操作系统,这里是ubuntu12.04-desktop
  这里的功能主要有几个,制作镜像,上传镜像,查看实例情况等
  
  安装NTP
  sudo apt-get install -y ntp
  
  修改配置文件/etc/ntp.conf,添加
  server 192.168.1.22
  
  重启NTP服务
  sudo service ntp restart
  
  安装客户端工具
  sudo apt-get install python-novaclient glance-client
  
  如果要制作镜像
  sudo apt-get install qemu-kvm
  
  设置环境变量
  export SERVICE_TOKEN=admin
  export OS_TENANT_NAME=admin
  export OS_USERNAME=admin
  export OS_PASSWORD=admin
  export OS_AUTH_URL="http://192.168.1.22:5000/v2.0/"
  export SERVICE_ENDPOINT=http://192.168.1.22:35357/v2.0
  
  制作了镜像(笔者是kvm制作)以后可以利用glance命令上传
  glance add name="windows" is_public=true container_format=ovf disk_format=
  qcow2 < windowsserver.img
  
  之后可以在dashboard中利用该镜像起虚拟机了。
  
  需要注意的是
  Security group的编辑,在dashboard中找到security group项,添加以下规则
  
DSC0000.jpg
  
  如果需要floating ip
  nova-manage floating create –ip_range=192.168.12.0/27
  
  这样就建了一个公网ip池,以后实例的公网ip就在本池中分配,可以通过dashboard操作。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56108-1-1.html 上篇帖子: OpenStack概述 下篇帖子: 用devstack安装多节点openstack云计算系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表