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

[经验分享] OpenStack云计算口袋书-第一章-开始OpenStack之旅(三)

[复制链接]

尚未签到

发表于 2018-6-2 12:37:55 | 显示全部楼层 |阅读模式
  三、开始安装OpenStack
  1. 安装openstack compute程序
  openstack@localhost:~$ sudo apt-get update   
openstack@localhost:~$ sudo apt-get  -y install rabbitmq-server nova-api nova-objectstore nova-scheduler nova-network nova-compute nova-cert glance qemu unzip
  所要安装程序的说明:
  nova-compute: 用于运行虚拟机实例
  nova-scheduler: 调度器,选择服务器执行运行虚拟机实例的请求
  nova-api: 这个服务是用来生成操作OpenStack服务的请求,并传递给OpenStack,譬如,通知nova-api启动一个新的Nova实例
  nova-network: 网络服务,用来控制DHCP、DNS和路由
  nova-objectstore: 文件存储服务
  nova-common: OpenStack环境的基础通用Python库
  nova-cert: Nova认证管理服务,用于对Nova的鉴权
  glance: 镜像注册和传输服务
  rabbitmq-server: 消息队列服务
  mysql-server: 数据库服务,保存像计算节点可用性、实例的运行状态等所有的OpenStack服务的数据
  ntp: 网络时间服务,NTP协议(Network Time Protocol )是多节点环境中必要的保障,用来使节点保持相同的时间,大于5秒的误差,往往会带来不可预测的结果
  dnsmasq: 提供DNS转发和DHCP服务,用于给实例指定地址
  2. 安装ntp程序
  openstack的多节点环境中需要时间和时间服务器保持同步。目前只有一个节点,可以为将来的扩展打下基础。
  openstack@localhost:~$ sudo apt-get -y install  ntp
  所安装程序的说明:
  3. 配置ntp程序
  3.1 备份ntp服务配置文件
  openstack@localhost:~$ sudo cp -av /etc/ntp.conf{,.origin}   
`/etc/ntp.conf' -> `/etc/ntp.conf.origin'   
openstack@localhost:~$
  3.2 重新配置ntp服务配置文件
  openstack@localhost:~$  sed 's/\t//' <<EOF |sudo tee /etc/ntp.conf
  driftfile /var/lib/ntp/ntp.drift   
        statistics loopstats peerstats clockstats   
        filegen loopstats file loopstats type day enable   
        filegen peerstats file peerstats type day enable   
        filegen clockstats file clockstats type day enable   
        restrict -4 default kod notrap nomodify nopeer noquery   
        restrict -6 default kod notrap nomodify nopeer noquery   
        # BEGIN   
        #server <NTP server>   
        server ntp.ubuntu.com   
        server 127.127.1.0   
        fudge 127.127.1.0 stratum 10   
        # END   
        restrict 127.0.0.1   
        restrict ::1
  EOF
  3.3 重启动ntp服务
  openstack@localhost:~$ sudo /etc/init.d/ntp restart   
* Stopping NTP server ntpd                                         [ OK ]   
* Starting NTP server ntpd                                         [ OK ]
  4. 安装和配置mysql服务器
  4.1 预配置mysql服务
  这里使用debconf这个配置工具,关于debconf配置工具的使用可以访问:
  Debian/Ubuntu无密码安装(apt)软件
  http://www.cnc8.cn/debianubuntu%E6%97%A0%E5%AF%86%E7%A0%81%E5%AE%89%E8%A3%85apt%E8%BD%AF%E4%BB%B6/
  openstack@localhost:~$ i   
openstack@localhost:~$ sed 's/\t//' <<EOF | sudo debconf-set-selections   
        mysql-server-5.1 mysql-server/root_password password ${MYSQL_PASSWD}   
        mysql-server-5.1 mysql-server/root_password_again password ${MYSQL_PASSWD}   
        mysql-server-5.1 mysql-server/start_on_boot boolean true   
EOF
  4.2 安装mysql服务器
  openstack@localhost:~$ sudo apt-get  -y install mysql-server
  4.3 配置mysql服务器监听IP
  同时备份原始文件
  openstack@localhost:~$ sudo sed -i.origin 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
  4.4 重新启动mysql服务器
  openstack@localhost:~$ sudo /etc/init.d/mysql restart
  Rather than invoking init scripts through /etc/init.d, use the service(8)
  utility, e.g. service mysql restart
  Since the script you are attempting to invoke has been converted to an
  Upstart job, you may also use the stop(8) and then start(8) utilities,
  e.g. stop mysql ; start mysql. The restart(s8) utility is also available.
  mysql stop/waiting
  mysql start/running, process 12065
  openstack@localhost:~$
  4.5 添加nava数据库,并配置用于访问nova数据库的用户名和密码
  openstack@localhost:~$ MYSQL_PASS=${MYSQL_PASS:-&quot;openstack&quot;}
  openstack@localhost:~$ NOVA_MYSQL_USER=${NOVA_MYSQL_USER:-&quot;nova&quot;}
  openstack@localhost:~$ NOVA_MYSQL_PASS=${NOVA_MYSQL_PASS:-&quot;openstack&quot;}
  openstack@localhost:~$ mysql -uroot -p$MYSQL_PASS -e &quot;DROP DATABASE IF EXISTS ${NOVA_MYSQL_USER};&quot;
  openstack@localhost:~$ mysql -uroot -p$MYSQL_PASS -e &quot;CREATE DATABASE ${NOVA_MYSQL_USER};&quot;
  openstack@localhost:~$ mysql -uroot -p$MYSQL_PASS -e &quot;GRANT ALL PRIVILEGES ON ${NOVA_MYSQL_USER}.* TO '${NOVA_MYSQL_USER}'@'%'&quot;
  openstack@localhost:~$ mysql -uroot -p$MYSQL_PASS -e &quot;SET PASSWORD FOR '${NOVA_MYSQL_USER}'@'%' = PASSWORD('${NOVA_MYSQL_PASS}');&quot;
  4.6 检查前面配置是否成功
  openstack@localhost:~$ mysql -uroot -p$MYSQL_PASS -e 'USE mysql;SELECT user,host,password FROM user'
DSC0000.png

  4.7 关于nova客户端的配置
  稍后我们会在/etc/nova/nova.conf中添加--sql_connection配置项,如下
  --sql_connection=mysql://nova:openstack@172.16.0.1/nova
  具体的配置我们稍后再操作。
  5. 配置openstack compute程序
  5.1 配置/etc/nova/nova.conf
  这是nova的主配配置文件,注意对于root以外的用户/etc/nova下的文件是不能读写的。
  openstack@localhost:~$ sudo ls -l /etc/nova   
total 24   
-rw------- 1 nova nova 4260 Apr 23 06:38 api-paste.ini   
-rw------- 1 nova nova   19 May 16 10:39 nova-compute.conf   
-rw------- 1 nova nova  328 Apr 24 08:09 nova.conf   
-rw------- 1 nova nova 4263 Apr 23 06:38 policy.json
  5.1.1 备份nova.conf配置文件
  openstack@localhost:~$ sudo cp -av /etc/nova/nova.conf{,.origin}
  `/etc/nova/nova.conf' -> `/etc/nova/nova.conf.origin'
  openstack@localhost:~$
  5.1.2 重写配置文件
  # 你的公网网卡地址
  PUB_IP=${PUB_IP:-&quot;172.16.0.1&quot;}
  # 你的私有网网卡地址
  PRI_IP=${PRI_IP:-&quot;10.0.0.1&quot;}
  # 重写你的配置文件
  sed 's/^\t//' <<EOF |sudo tee /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=/var/lock/nova
  --force_dhcp_release
  --iscsi_helper=tgtadm
  --libvirt_use_virtio_for_bridges
  --connection_type=libvirt
  --root_helper=sudo nova-rootwrap
  --ec2_private_dns_show_ip
  --sql_connection=mysql://nova:openstack@172.16.0.1/nova
  --use_deprecated_auth
  --s3_host=172.16.0.1
  --rabbit_host=172.16.0.1
  --ec2_host=172.16.0.1
  --ec2_dmz_host=172.16.0.1
  --public_interface=eth1
  --image_service=nova.image.glance.GlanceImageService
  --glance_api_servers=172.16.0.1:9292
  --auto_assign_floating_ip=true
  --scheduler_default_filters=AllHostsFilter
  EOF
  # 如果有自定义网络地址的需要建议使用下面类似的语法修改配置文件
  #sudo sed -i.$(date +%F-%H%M) -r 's|^(.*--sql_connection=).*$|\1'&quot;${NOVA_MYSQL_USER}:${NOVA_MYSQL_PASS}@${PUB_IP}/${NOVA_MYSQL_USER}&quot;'|p' /etc/nova/nova.conf
  #其它修改语句
  上面的命令是为了可以自定义脚本而精心构造的。
  关于配置项的解释可查阅,OpenStack云计算口袋书的第15页。
  5.1.3 修改nova-compute.conf配置文件
  默认使用qemu,建议在虚拟机中安装openstack的时候使用qemu,实际中只要硬件支持硬件辅助虚拟化,这里使用kvm理论上也是可行的。建议使用qemu。
  openstack@localhost:~$ LIBVIRT_TYPE=${LIBVIRT_TYPE:-&quot;qemu&quot;}
  修改配置项--libvirt_type=kvm 为 --libvirt_type=qemu
  openstack@localhost:~$ sudo sed -i.origin -r 's|^(.*--libvirt_type=).*$|\1'&quot;${LIBVIRT_TYPE}&quot;'|' /etc/nova/nova-compute.conf
  5.1.4 初始化nova数据库
  openstack@localhost:~$ sudo nova-manage db sync   
2013-09-14 22:02:30 WARNING nova.utils [-] /usr/lib/python2.7/dist-packages/sqlalchemy/pool.py:639: SADeprecationWarning: The 'listeners' argument to Pool (and create_engine()) is deprecated.  Use event.listen().   
  Pool.__init__(self, creator, **kw)   
2013-09-14 22:02:30 WARNING nova.utils [-] /usr/lib/python2.7/dist-packages/sqlalchemy/pool.py:145: SADeprecationWarning: Pool.add_listener is deprecated.  Use event.listen()   
  self.add_listener(l)   
2013-09-14 22:02:30 AUDIT nova.db.sqlalchemy.fix_dns_domains [-] Applying database fix for Essex dns_domains table.
  这个步骤,会有警告信息,没有大的影响。
  6. 配置nova网络
  6.2 配置虚拟机的公有网络
  这个网络是用来从客户端访问虚拟机实例用的。
  openstack@localhost:~$ sudo nova-manage floating create --ip_range=172.16.1.0/24
  操作后执行下面的命令验证一下:
  openstack@localhost:~$ mysql -uroot -p${MYSQL_PASS} -e 'select * from nova.floating_ips limit 10'
DSC0001.png

  6.1 配置虚拟机的私有网络
  这个网络是虚拟机实例之间相互通信使用的。
  openstack@localhost:~$ sudo nova-manage network create vmnet --fixed_range_v4=10.0.0.0/8 --network_size=64 --bridge_interface=eth2
  操作后执行下面的命令验证一下:
  openstack@localhost:~$ mysql -uroot -p${MYSQL_PASS} -e 'select * from nova.networks \G'
DSC0002.png

  7. 重新启动nova
  全部停止
  openstack@localhost:~$ for i in  /etc/init.d/nova* /etc/init.d/libvirt-bin /etc/init.d/glance-* ; do sudo stop $(basename $i);done   
nova-api stop/waiting   
nova-cert stop/waiting   
nova-compute stop/waiting   
nova-network stop/waiting   
nova-objectstore stop/waiting   
nova-scheduler stop/waiting   
libvirt-bin stop/waiting   
glance-api stop/waiting   
glance-registry stop/waiting
  检查是否已经停止   
for i in  /etc/init.d/nova* /etc/init.d/libvirt-bin /etc/init.d/glance-* ; do sudo status $(basename $i);done
  重新启动   
openstack@localhost:~$ for i in  /etc/init.d/nova* /etc/init.d/libvirt-bin /etc/init.d/glance-* ; do sudo start $(basename $i);done   
nova-api start/running, process 13356   
nova-cert start/running, process 13372   
nova-compute start/running, process 13389   
nova-network start/running, process 13405   
nova-objectstore start/running, process 13421   
nova-scheduler start/running, process 13439   
libvirt-bin start/running, process 13461   
glance-api start/running, process 13480   
glance-registry start/running, process 13500
  8. 添加nova管理账户和项目
  在nova.conf中的--use_deprecated_auth这个参数的意思便是我们使用简单的验证方式。
  在这里不使用Keystone,是由于KeyStone过于复杂,并不适合初学者用来测试或实验。附着学习地深入,以后会逐步讲到KeyStone。
  8.1 添加管理角色
  这一步骤在nova数据库初始化5.1.4中已经做过了。
  8.2 添加用户
  openstack@localhost:~$ sudo nova-manage user admin openstack   
2013-09-14 22:49:23 AUDIT nova.auth.manager [-] Created user openstack (admin: True)   
export EC2_ACCESS_KEY=0dc5aaf7-3c05-4426-98f6-34e03cf7dd65   
export EC2_SECRET_KEY=e1c25d28-976d-4165-baab-4ed95488cdc0
  8.3 用户绑定管理角色
  openstack@localhost:~$ sudo nova-manage role add openstack cloudadmin
  2013-09-14 22:51:20 AUDIT nova.auth.manager [-] Adding sitewide role cloudadmin to user openstack
  openstack@localhost:~$
  8.4 添加项目并绑定用户
  openstack@localhost:~$ sudo nova-manage project create cookbook openstack   
2013-09-14 22:53:05 AUDIT nova.auth.manager [-] Created project cookbook with manager openstack
  8.4 使用Zipfile的方式传递认证文件
  这个步骤是为了照顾虚拟机搭建openstack这种情况,就是nova会把认证文件压缩后,稍后再通过我们手工传输到客户机上来实现管理openstack的目的。
  openstack@localhost:~$ sudo nova-manage project zipfile cookbook openstack   
2013-09-14 22:58:49 WARNING nova.auth.manager [-] No *** data for project cookbook
  已经生成   
openstack@localhost:~$ ls   
nova.zip

运维网声明 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-507485-1-1.html 上篇帖子: OpenStack云计算口袋书-第一章-开始OpenStack之旅(二) 下篇帖子: OpenStack云计算口袋书-第一章-开始OpenStack之旅(六)第一章结束
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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