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

[经验分享] openstack的部署和使用

[复制链接]

尚未签到

发表于 2015-10-11 12:05:23 | 显示全部楼层 |阅读模式
= openstack =
== packstack的介绍 ==
{{{
一句话:为openstack的一体化安装提供了方便,简化了整个openstack的安装.
如何安装packstack?执行如下命令:
[iyunv@controller openstack]# yum install openstack-packstack -y
}}}
== openstack allinone式安装 ==
=== 环境准备 ===
{{{
环境的准备同非allinone模式下的一样,需要配置yum源,当然如果vm能与外网连通,可以不用配置本地yum源。
}}}
=== 开始安装 ===
{{{
[iyunv@controller ~]# packstack --allinone

完成后会有安装成功的提示,并且生成了answer文件,以及openstack的管理员和demo用户的登陆信息,包括用户名、密码等信息。
}}}
== openstack 非allinone式安装 ==
=== 环境准备 ===
{{{
1.三台centos机器,这里使用虚拟化软件虚拟出来三台centos7 vm
2.规划:一台vm是控制节点(controller:192.168.99.194),一台vm是计算节点(nova:192.168.99.196),一台vm是网络节点(neutron:192.168.99.195)
3.各节点网络规划:控制节点一个网卡,nova 上两个网卡,一个是用来和controller通信的,一个是用作为vm之间的通信网络;neutron节点一样,两个网卡。
4.openstack 镜像准备:这里将openstack依赖的rpm包做成本地yum源,来供packstack安装过程中使用,例如:
/etc/yum.repos.d/CentOS-Media.repo文件中添加如下内容:
[Local-base]
name=CentOS-Local-Base /root/openstack
baseurl=file:///root/openstack
gpgcheck=0
gpgkey=file:///media/RPM-GPG-KEY-CentOS-7/RPM-GPG-KEY-CentOS-7

yum 源/root/openstack的制作:
[iyunv@controller ~]# createrepo /root/openstack/  ------>其中/root/openstack下存放了openstack安装依赖的所有rpm包

创建完后,配置/etc/yum.repos.d/目录下的repo文件即可完成本地源的配置。

5.centos7 系统镜像准备:由于packstack安装过程中会安装一些依赖的包,把它也配置成yum源。
例如:
/etc/yum.repos.d/CentOS-Media.repo文件中添加如下内容:
[Local-ISO]
name=CentOS-Local-ISO /media/RPM-GPG-KEY-CentOS-7
baseurl=file:///media/RPM-GPG-KEY-CentOS-7
gpgcheck=1
gpgkey=file:///media/RPM-GPG-KEY-CentOS-7/RPM-GPG-KEY-CentOS-7



然后将系统iso文件mount到/media/RPM-GPG-KEY-CentOS-7目录下:
[iyunv@controller ~]# mount /dev/sr0 /media/RPM-GPG-KEY-CentOS-7/

以上yum源的配置必须分别在controller、nova和neutron节点上配置,否则安装过程会因为包的依赖问题而安装失败。

6.配置ssh,避免packstack安装过程输入密码:
[iyunv@controller ~]# ssh-keygen -t rsa ------>回车后,后边的都直接回车,不要输入什么东西,最后就可生成pub文件
[iyunv@controller ~]# scp ./.ssh/id_rsa.pub  root@192.168.99.195:/root/.ssh/authorized_keys
[iyunv@controller ~]# scp ./.ssh/id_rsa.pub  root@192.168.99.196:/root/.ssh/authorized_keys
}}}
=== 生成packstack需要的answer文件 ===
{{{
[iyunv@localhost ~]# packstack --gen-answer-file=controlnode.txt ----->这个文件名任意
}}}
=== 修改answer文件 ===
{{{
修改如下介个字段的值为:
...
CONFIG_CONTROLLER_HOST=192.168.99.194
...
CONFIG_NETWORK_HOSTS=192.168.99.195
...
CONFIG_COMPUTE_HOSTS=192.168.99.196
...

# Private interface for Flat DHCP on the Nova compute servers
CONFIG_NOVA_COMPUTE_PRIVIF=ens160 ------>ens160是centos7的网卡名称,等同于eth0,叫法不一样而已。
# Public interface on the Nova network server
CONFIG_NOVA_NETWORK_PUBIF=ens192
# Private interface for network manager on the Nova network server
CONFIG_NOVA_NETWORK_PRIVIF=ens160
}}}
=== 开始安装openstack ===
{{{
[iyunv@localhost ~]# packstack --answer-file=controlnode.txt
}}}
=== 安装可能遇到的问题 ===
{{{
}}}
== openstack api 使用 ==
=== 通过curl使用 ===
{{{
1.先生成一个X-Auth-Token值,然后使用这个认证的值调用相关的api接口
curl -k -X 'POST' -v http://192.168.99.194:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "guol", "password":"123456"\}\}\}' -H 'Content-type: application/json' | python -mjson.tool
这条命令输出:
* About to connect() to 192.168.99.194 port 5000 (#0)
*   Trying 192.168.99.194...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to 192.168.99.194 (192.168.99.194) port 5000 (#0)
> POST /v2.0/tokens HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.99.194:5000
> Accept: */*
> Content-type: application/json
> Content-Length: 85
>
} [data not shown]
* upload completely sent off: 85 out of 85 bytes
< HTTP/1.1 200 OK
< Date: Wed, 27 May 2015 09:15:12 GMT
< Server: Apache/2.4.6 (CentOS)
< Vary: X-Auth-Token
< Content-Length: 370
< Connection: close
< Content-Type: application/json
<
{ [data not shown]
100   455  100   370  100    85   2495    573 --:--:-- --:--:-- --:--:--  2534
* Closing connection 0
{
    &quot;access&quot;: {
        &quot;metadata&quot;: {
            &quot;is_admin&quot;: 0,
            &quot;roles&quot;: []
        },
        &quot;serviceCatalog&quot;: [],
        &quot;token&quot;: {
            &quot;audit_ids&quot;: [
                &quot;jnoADKPmT7yicWu3TO6sSw&quot;
            ],
            &quot;expires&quot;: &quot;2015-05-27T10:15:12Z&quot;,
            &quot;id&quot;: &quot;24751190be2f473381e59f30ddf4f94a&quot;,
            &quot;issued_at&quot;: &quot;2015-05-27T09:15:12.668212&quot;
        },
        &quot;user&quot;: {
            &quot;id&quot;: &quot;2ae4534559934f28b17557c8acd5b71f&quot;,
            &quot;name&quot;: &quot;admin&quot;,
            &quot;roles&quot;: [],
            &quot;roles_links&quot;: [],
            &quot;username&quot;: &quot;admin&quot;
        }
    }
}
找到token id:24751190be2f473381e59f30ddf4f94a
2.调用api
curl -X 'GET' -H  &quot;X-Auth-Token:24751190be2f473381e59f30ddf4f94a&quot; -v http://192.168.99.194:8774/v2.0/2ae4534559934f28b17557c8acd5b71f/servers | python -mjson.tool




但是有些节点还是无法通过调用api返回相应信息,当你按照api-doc接着调用compute、image、volume等下面的api接口时,会发现统统没有返回&#20540;,于是对于剩下的api接口是需要使用认证过的token才能使用的。所以:
[iyunv@controller ~]# curl -X POST -d  '{&quot;auth&quot;: {&quot;tenantName&quot;: &quot;admin&quot;, &quot;passwordCredentials&quot;:{&quot;username&quot;: &quot;admin&quot;, &quot;password&quot;: &quot;8f92d8ae16f14fbd&quot;\}\}\}' -H &quot;Content-type: application/json&quot; http://192.168.99.194:35357/v2.0/tokens | python -mjson.tool
获取租户的实例列表:
[iyunv@controller ~]# curl -X 'GET' -H  &quot;X-Auth-Token:991ad3803fda41f7a3c0be0e2eedf7fb&quot; -v http://192.168.99.194:8774/v2/37faf0d026414384a4e73a18e7bf7275/servers | python -mjson.tool
获取某个实例的信息:
[iyunv@controller ~]# curl -X 'GET' -H  &quot;X-Auth-Token:991ad3803fda41f7a3c0be0e2eedf7fb&quot; -v http://192.168.99.194:8774/v2/37faf0d026414384a4e73a18e7bf7275/servers/36bde079-6e77-4000-b7e6-d8602d758288 | python -mjson.tool         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 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-125412-1-1.html 上篇帖子: 三种存储的差别,摘抄openstack文章 下篇帖子: (转载)虚拟化管理软件比较(Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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