openstack搭建教程

时间:2024-10-12 08:25:12编辑:思创君

学习Openstack需要运维人员掌握哪些技术

openstack是一个复杂的云管理平台,你需要掌握,虚拟化、网络、存储、验证流程等相关知识点,特别是网络这块,很多都卡在这个位置,而且你得深入去了解网络底层,这样在故障运维的时候可以快速断定故障点,存储这块,你得对传统存储比较熟悉和熟练应用,可查看此链接,详细讲解openstack各知识难点、强调点,根据亲身经验讲解openstack知识,避免学习者少走弯快速掌握openstack内容。网页链接

openstack必须安装哪些组件

一、 数据库

a) 安装
# apt-get install python-mysqldb mysql-server


b) 配置

修改 /etc/mysql/my.cnf
[mysqld]


bind-address = 127.0.0.1 # ip 地址全部使用本机
default-storage-engine = innodb #设置默认存储引擎为 Innodb
innodb_file_per_table
collation-server = utf8_general_ci #设置编码格式
init-connect = 'SET NAMES utf8'
character-set-server = utf8


c) 重启 mysql 服务,使用安全模式初始化数据库,删除匿名用户
# service mysql restart
# mysql_secure_installation 或 # mysql_install_db


二、 软件包配置

a) 安装 OpenStack Havana Ubuntu 云档案
# apt-get install python-software-properties
# add-apt-repository cloud-archive:Havana


b) 更新软件包数据库,更新系统
# apt-get update && apt-get dist-upgrade
# reboot


三、 消息服务

消息服务使用 rabbitmq
# apt-get install rabbitmq-server


注: rabbitmq 默认提供一个 guest 用户和默认的 guest 密码,这里需要修改一下 guest 用户的密码,因为后面配置 nova 服务的时候需要用到 rabbitmq 密码
# rabbitmqctl change_password guest openstack




四、 Keystone 认证服务

a) 安装
# apt-get install keystone


b) 配置

1) 修改数据库连接方式,编辑配置文件 /etc/keystone/keystone.conf
...
[sql]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://keystone:openstack@127.0.0.1/keystone
...


2) 删除默认创建的数据库
rm –f /var/lib/keystone/keystone.db


3) 创建数据库
# mysql -u root -p
mysql> CREATE DATABASE keystone;
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'openstack';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'openstack';


4) 创建数据表
# keystone-manage db_sync


5) 创建一个随机的 Token 用于连接认证服务时使用

# openssl rand -hex 10 > /root/token # 后面还会用到所以可以保存起来

编辑 /etc/keystone/keyston.conf
[DEFAULT]
# A "shared secret" between keystone and other openstack services
admin_token = ADMIN_TOKEN
...


6) 重启服务
# service keystone restart


c) 创建租户 (tenant) 、用户 (user) 、角色 (role)

在还没有创建任何用户之前,我们必须要使用 token 来进行认证,可以将 token 设置为环境变量,或者在使用 keystone 命令的时候使用 –os-token 命令来指定 token 。

这里设置为环境变量:
# export OS_SERVICE_TOKEN=ADMIN_TOKEN
# export OS_SERVICE_ENDPOINT=http://127.0.0.1:35357/v2.0




1) 创建租户 admin 和 service
# keystone tenant-create --name=admin --description="Admin Tenant"



# keystone tenant-create --name=service --description="Service Tenant"




2) 创建用户 admin
#keystone user-create --name=admin --pass=openstack --email=admin@localhost



# keystone role-create --name=admin


3) 为 admin 创建 role



4) 关联 user 、 tenant 和 role
# keystone user-role-add --user=admin --tenant=admin --role=admin


d) 创建服务 (service) 和访问端点 (endpoint)

1) 创建 keystone 服务,类型为 identity( 认证 )
# keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"




2) 使用上面返回的 service id 来创建服务的访问端点
# keystone endpoint-create \

--service-id=the_service_id_above\

--publicurl=http://127.0.0.1:5000/v2.0 \

--internalurl=http://127.0.0.1:5000/v2.0 \

--adminurl=http://127.0.0.1:35357/v2.0




e) 校验 keystone 服务

现在已经创建了 admin 用户,所以可以通过 admin 用户来访问 keystone 服务
$ unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
$ keystone --os-username=admin --os-password=openstack --os-auth-url=http://127.0.0.1:35357/v2.0 token-get


为了避免每次都需要输入用户名和密码,可以将它们保存为环境变量。编辑 /root/keystone.sh
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://127.0.0.1:35357/v2.0


这样只要执行 # source keystone.sh 命令就可以连接 keystone 了

五、 镜像服务 —glance

a) 安装
# apt-get install glance python-glanceclient


b) 配置

1) 设置数据库连接

编辑配置文件 /etc/glance/glance-api.conf 和 /etc/glance/glance-registry.conf
...
[DEFAULT]
...
# SQLAlchemy connection string for the reference implementation
# registry server. Any valid SQLAlchemy connection string is fine.
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.
html#sqlalchemy.create_engine
sql_connection = mysql://glance:openstack@127.0.0.1/glance
...


2) 创建数据库
# mysql -u root -p
mysql> CREATE DATABASE glance;
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'openstack';
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'openstack';


3) 创建数据表
# glance-manage db_sync


4) 创建 glance 用户并关联到角色
# keystone user-create --name=glance --pass=openstack --email=glance@localhost



# keystone user-role-add --user=glance --tenant=service --role=admin


5) 配置 glance 服务使用 keystone 来进行认证

编辑 /etc/glance/glance-api.conf 和 /etc/glance/glance-registry.conf 文件
[keystone_authtoken]
...
auth_uri = http://127.0.0.1:5000
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
...
[paste_deploy]
...
flavor = keystone


6) 添加认证信息到 /etc/glance/glance-api-paste.ini 和 /etc/glance/glance-registry-paste.ini 文件
[filter:authtoken]
paste.filter_factory=keystoneclient.middleware.auth_token:filter_factory
auth_host=127.0.0.1
admin_user=glance
admin_tenant_name=service
admin_password=openstack


7) 注册镜像服务
# keystone service-create --name=glance --type=image --description="Glance Image Service"




8) 使用上面返回的 service id 创建访问点
# keystone endpoint-create \
--service-id=the_service_id_above \
--publicurl=http://127.0.0.1:9292 \
--internalurl=http://127.0.0.1:9292 \
--adminurl=http://127.0.0.1:9292




9) 重启镜像服务
# service glance-registry restart
# service glance-api restart


c) 创建镜像文件

CirrOS 镜像是常用的一个 qcow2 类型的镜像,下载镜像并上传到 glance 服务器
$ mkdir images
$ cd images/
$ wget http://cdn.download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img
# glance image-create --name="CirrOS 0.3.1" --disk-format=qcow2 --container-format=bare --is-public=true < cirros-0.3.1-x86_64-disk.img


查看上传的镜像可以使用
# glance image-list




六、 计算服务

a) 安装计算服务软件包
# apt-get install nova-novncproxy novnc nova-api nova-ajax-console-proxy nova-cert nova-conductor nova-consoleauth nova-doc nova-scheduler python-novaclient
# apt-get install nova-compute-kvm python-guestfs


修改内核 bug
# dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-$(uname -r)

# vim /etc/kernel/postinst.d/statoverride

#!/bin/sh

version="$1"

# passing the kernel version is required

[ -z "${version}" ] && exit 0

dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-${version}

# chmod +x /etc/kernel/postinst.d/statoverride


b) 配置

1) 配置数据库

编辑配置文件 /etc/nova/nova.conf
...
[database]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://nova:openstack@127.0.0.1/nova
[keystone_authtoken]
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = openstack


2) 配置计算服务使用 rabbitmq 消息队列传送信息

编辑配置文件 /etc/nova/nova.conf
...
[DEFAULT]
rpc_backend = nova.rpc.impl_kombu
rabbit_host = 127.0.0.1
rabbit_password = openstack # 如果rabbitmq未改,则使用默认guest密码
...


如何快速部署OpenStack环境

OpenShit是一款能够在Ubuntu14.04系统上快速部署Openstack的小工具,它使用Shell脚本和Python脚本完成对Openstack各组件的安装和配置.并且可以方便的更改配置参数重新配置,重启服务清空数据库等等.利用命令可以进行完全的自动化安装和配置.以下是OpenShit的地址

OpenShit命令介绍
./openshit.sh start|stop|restart
可对各个(或者全部)Openstack组件进行启动,停止,重启操作.
./openshit.sh install|uninstall|download
可对Openstack各个组件进行 安装,卸载,下载包 操作
./openshit.sh config
可以配置组建建立数据库, 原先的配置文件在config-backup文件夹中按照时间备份起来,使用rollback.sh脚本可以方便的回滚配置文件改动
./openshit.sh clean
可以清除服务的数据库, 若服务出问题了可以直接清掉数据库然后重新config
接下来我们使用OpenShit在Ubuntu14.04上部署OpenStack.这里有几个小要求:
1. Ubuntu14.04分区一定要有足够的空间.OpenStack在创建实例的时候会使用分区的空间,空间不够则无法创建实例.测试用Ubuntu14.04分了100G,足够使用了.

2. 建议最好是新装的ubuntu分区.如果装过神马DevStack没装成功一堆垃圾留在系统库里再用OpenShit不成功那就不好意思了.
不多说现在开始
1.安装git, 使用git下载openshit
git clone https://github.com/windworst/openshit.git.

2.修改配置文件setting.conf.
里面有很多密码:数据库密码,服务密码.默认的可以更改,不改也没什么.
改变网络配置.配置文件内IP值都设置称自己的IP, 网卡设置成自己的网卡(默认为eth0).

3.配置文件修改完成后开始安装
./openshit.sh --all install.
这个命令会 问你是否需要配置软件源, 第一次使用openshit请选择y, 所以命令可以这样写:
echo y | ./openshit.sh --all install

4.一段时间后安装完成,请输入
./openshit.sh --all config
会根据setting.conf的值修改各个组件的配置文件以及数据库配置.

5.完成后
运行source admin-env.sh; nova service-list 查看服务状态若都为up安装成功
在浏览器内打开 http://localhost/horizon即可看到Openstack管理界面输入密码可登陆

现在OpenStack成功部署到了Ubuntu14.04服务器上.
为了成功运行一个实例,我们需要制作并上传一个镜像, 配置网络,启动实例.
这里制作一个ubuntu14 server 的镜像
1. 制作镜像
qemu-img create -f qcow2 ubuntu.img 20G
kvm -cdrom ubuntu-14.04-server-amd64.iso -drive file=ubuntu.img,if=virtio,index=0 -boot d -net nic -net user
这里就是直接从光盘安装ubuntu14-server了 装好就行

2.上传镜像
在openshit目录中 执行 source admin-env.sh
执行
glance image-create --name "ubuntu" --file ubunut.img --disk-format qcow2 --container-format bare --is-public True --progress
进度条快速滚过,上传完成
3. 创建网络
在openshit目录中 执行 source admin-env.sh (前面执行过了这里就不用执行了)
执行
nova network-create v-net --bridge br100 --multi-host T --fixed-range-v4 10.0.1.0/29
这里 v-net是网络名字 10.0.1.0/29 是网段和要分配的主机数量 不要设置网段跟本网段一样,否则蛋疼超乎你想象
执行
nova net-list
可以看到刚才创建的网络
4. 创建实例
在web管理端 镜像 栏内 点 运行 即可创建实例 (会分配刚才创建网络的ip地址)
点击控制台,可以通过vnc看到虚拟机的屏幕
这里有个问题 虚拟机和主机能互相ping通(需要关掉防火墙),不过无法访问外网,可能是哪里没有设置.


如何快速部署openstack

OpenShit是一款能够在Ubuntu14.04系统上快速部署Openstack的小工具,它使用Shell脚本和Python脚本完成对Openstack各组件的安装和配置.并且可以方便的更改配置参数重新配置,重启服务清空数据库等等.利用命令可以进行完全的自动化安装和配置.以下是OpenShit的地址

OpenShit命令介绍
./openshit.sh start|stop|restart
可对各个(或者全部)Openstack组件进行启动,停止,重启操作.
./openshit.sh install|uninstall|download
可对Openstack各个组件进行 安装,卸载,下载包 操作
./openshit.sh config
可以配置组建建立数据库, 原先的配置文件在config-backup文件夹中按照时间备份起来,使用rollback.sh脚本可以方便的回滚配置文件改动
./openshit.sh clean
可以清除服务的数据库, 若服务出问题了可以直接清掉数据库然后重新config
接下来我们使用OpenShit在Ubuntu14.04上部署OpenStack.这里有几个小要求:
1. Ubuntu14.04分区一定要有足够的空间.OpenStack在创建实例的时候会使用分区的空间,空间不够则无法创建实例.测试用Ubuntu14.04分了100G,足够使用了.

2. 建议最好是新装的ubuntu分区.如果装过神马DevStack没装成功一堆垃圾留在系统库里再用OpenShit不成功那就不好意思了.
不多说现在开始
1.安装git, 使用git下载openshit
git clone https://github.com/windworst/openshit.git.

2.修改配置文件setting.conf.
里面有很多密码:数据库密码,服务密码.默认的可以更改,不改也没什么.
改变网络配置.配置文件内IP值都设置称自己的IP, 网卡设置成自己的网卡(默认为eth0).

3.配置文件修改完成后开始安装
./openshit.sh --all install.
这个命令会 问你是否需要配置软件源, 第一次使用openshit请选择y, 所以命令可以这样写:
echo y | ./openshit.sh --all install

4.一段时间后安装完成,请输入
./openshit.sh --all config
会根据setting.conf的值修改各个组件的配置文件以及数据库配置.

5.完成后
运行source admin-env.sh; nova service-list 查看服务状态若都为up安装成功
在浏览器内打开 http://localhost/horizon即可看到Openstack管理界面输入密码可登陆

现在OpenStack成功部署到了Ubuntu14.04服务器上.
为了成功运行一个实例,我们需要制作并上传一个镜像, 配置网络,启动实例.
这里制作一个ubuntu14 server 的镜像
1. 制作镜像
qemu-img create -f qcow2 ubuntu.img 20G
kvm -cdrom ubuntu-14.04-server-amd64.iso -drive file=ubuntu.img,if=virtio,index=0 -boot d -net nic -net user
这里就是直接从光盘安装ubuntu14-server了 装好就行

2.上传镜像
在openshit目录中 执行 source admin-env.sh
执行
glance image-create --name "ubuntu" --file ubunut.img --disk-format qcow2 --container-format bare --is-public True --progress
进度条快速滚过,上传完成
3. 创建网络
在openshit目录中 执行 source admin-env.sh (前面执行过了这里就不用执行了)
执行
nova network-create v-net --bridge br100 --multi-host T --fixed-range-v4 10.0.1.0/29
这里 v-net是网络名字 10.0.1.0/29 是网段和要分配的主机数量 不要设置网段跟本网段一样,否则蛋疼超乎你想象
执行
nova net-list
可以看到刚才创建的网络
4. 创建实例
在web管理端 镜像 栏内 点 运行 即可创建实例 (会分配刚才创建网络的ip地址)
点击控制台,可以通过vnc看到虚拟机的屏幕
这里有个问题 虚拟机和主机能互相ping通(需要关掉防火墙),不过无法访问外网,可能是哪里没有设置.


上一篇:什么小生意最赚钱

下一篇:没有了