三、Openstack安装
3.1 开启各项服务
我们是yum安装的mysql,所以刚上来要先进行第一次启动以及一些配置,mysql的配置这里就不详述了,包括root密码什么的,大家根据自己的环境需要自己给mysql加入密码。之后启动即可
# /etc/init.d/mysqld start && chkconfig mysqld on为Openstack准备数据库
# openstack-db --init --service nova # openstack-db --init --service glance开启提供支持的服务
# service qpidd start && chkconfig qpidd on # service libvirtd start && chkconfig libvirtd on开启glance服务
# for svc in api registry; do service openstack-glance-$svc start; chkconfig openstack-glance-$svc on ; done开启Nova服务
# for svc in api objectstore compute network volume scheduler cert; do service openstack-nova-$svc start ; chkconfig openstack-nova-$svc on ; done按理来说,各项服务都应该能正常开启。我们需要手动检查各个服务的Log查看是否有报错:Log在/var/log/nova下。
3.2 Keystone设置
Keystone就是一个密码库,管理所有的认证机制,包括各种服务的密码验证,以及我们从浏览器访问Web版的控制台的时候的登陆认证等。可以说它就是Openstack的机要处,必须要有它。然后我们使用各个命令来查询状态的时候,都要先进行一个密码的验证,而这个验证有一些明文的参数,这些内容是需要被指定在系统的环境变量中的。所以下面就可以看到我们添加系统环境变量的一步。
首先进行keystone的数据库设置
# openstack-db --init --service keystone然后添加系统环境变量,由于环境变量会因为我们每次登陆而重置,所以我们把它写到一个文件里,这样我们每次ssh连入系统的时候就可以直接直读这个文件而获得我们自定义的这些系统环境变量。这里OS_PASSWORD对应的密码可以自己设置,由于Openstack中各项认证的密码众多,所以我建议大家都使用统一的密码。注意里面的ADMIN_TOKEN这将是所有服务获取认证的关键。
# cat > keystonerc <<EOFexport ADMIN_TOKEN=$(openssl rand -hex 10)
export OS_USERNAME=admin
export OS_PASSWORD=Abcd1234
export OS_TENANT_NAME=admin
export OS_AUTH_URL=:5000/v2.0/
EOF
这样我们当前目录下就有一个keystonerc的文件,这里记录着这些系统变量。
# . ./keystonerc在配置文件中设置管理员的token
# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN开始keystone服务
# service openstack-keystone start && chkconfig openstack-keystone on创建默认的Tenants, Users和Roles
# ADMIN_PASSWORD=$OS_PASSWORD SERVICE_PASSWORD=servicepass openstack-keystone-sample-data创建好后,验证一下,如果弹出下面的内容,那就是创建完成了。
# keystone user-list+----------------------------------+---------+--------------------+--------+ | id | enabled | email | name |
+----------------------------------+---------+--------------------+--------+
| 1581bec2ca864aa7b6a88947dddf7926 | True | glance@example.com | glance |
| 3170c1630b154997acd9aed847ef3f48 | True | nova@example.com | nova |
| 8b0d755e74524742966fdaf14a6e77d6 | True | admin@example.com | demo |
| c2a3f53f014445a88650ba14a264e207 | True | admin@example.com | admin |
+----------------------------------+---------+--------------------+--------+
3.3 配置nova
更改nova配置文件中的相关keystone认证的配置,注意,由于我们是单网卡节点,所以我们一定要制定flat_interface和public_interface为我们的网卡"em1"
# openstack-config --set /etc/nova/api-paste.ini filter:authtoken admin_tenant_name service# openstack-config --set /etc/nova/api-paste.ini filter:authtoken admin_user nova
# openstack-config --set /etc/nova/api-paste.ini filter:authtoken admin_password Abcd1234
# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
# openstack-config --set /etc/nova/nova.conf DEFAULT flat_interface em1
# openstack-config --set /etc/nova/nova.conf DEFAULT public_interface em1
# for svc in api compute; do service openstack-nova-$svc restart; done
查看flavor的列表来检查一下我们配置好的nova是否能通过keystone来进行验证了
# nova flavor-list+----+-----------+-----------+------+-----------+------+-------+-------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor |
+----+-----------+-----------+------+-----------+------+-------+-------------+
| 1 | m1.tiny | 512 | 0 | 0 | | 1 | 1.0 |
| 2 | m1.small | 2048 | 10 | 20 | | 1 | 1.0 |
| 3 | m1.medium | 4096 | 10 | 40 | | 2 | 1.0 |
| 4 | m1.large | 8192 | 10 | 80 | | 4 | 1.0 |
| 5 | m1.xlarge | 16384 | 10 | 160 | | 8 | 1.0 |
+----+-----------+-----------+------+-----------+------+-------+-------------+
3.4 配置glance
与nova的配置一样,我们也依然需要先设置glance来能使用keystone进行认证
# openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone# openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
# openstack-config --set /etc/glance/glance-api-paste.ini filter:authtoken admin_tenant_name service
# openstack-config --set /etc/glance/glance-api-paste.ini filter:authtoken admin_user glance
# openstack-config --set /etc/glance/glance-api-paste.ini filter:authtoken admin_password Abcd1234
# openstack-config --set /etc/glance/glance-registry-paste.ini filter:authtoken admin_tenant_name service
# openstack-config --set /etc/glance/glance-registry-paste.ini filter:authtoken admin_user glance
# openstack-config --set /etc/glance/glance-registry-paste.ini filter:authtoken admin_password Abcd1234
# service openstack-glance-api restart
# service openstack-glance-registry restart
配置完后,使用查看当前镜像命令进行验证:
# glance index如果命令正确的话,返回值是0,当前我们没有添加任何镜像,所以这个一定是查不出内容的。但是返回值可以告诉我们是否命令执行正常。
3.5 添加网络
创建一个网络,这个网络是到时候由openstack创建出的虚拟机的主网络,所以我们可以根据自己的需要来创建,并且制定网桥,Openstack的虚拟网络会在创建第一个实例的时候由openstack自动创建出来,无需我们手动添加。
# nova-manage network create weiyantest 192.168.0.0/24 1 256 --bridge=weiyanbr013.6 创建一个keypair
keypair实际上就是ssh认证时候的私钥,我们创建好的实例想进入它还不知道密码的时候就需要使用它来进入,而如果有keypair,则所有新创建出来的实例都是已它来作为自己的私钥的。我们这里创建一个名字叫mykey的私钥
# nova keypair-add mykey > oskey.priv# chmod 600 oskey.priv
设置keypair的加载类型,允许我们使用这一个私钥进入多个不同的实例
# openstack-config --set /etc/nova/nova.conf DEFAULT libvirt_inject_partition -1# service openstack-nova-compute restart
3.7 设置Dashboard
Dashboard实际上就是Openstack的Web控制端,比较好安装
# yum install openstack-dashboard# service httpd restart && chkconfig httpd on
之后,我们就可以通过 你机器的IP/dashboard 的方式访问到了,用户名是admin,密码是我们在系统环境中指定的密码
3.8 设置安全策略
这里的安全策略实际上就是后台那些创建出来的实例的防火墙~~
# 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
# nova secgroup-list
# nova secgroup-list-rules default
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port | IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp | -1 | -1 | 0.0.0.0/0 | |
| tcp | 22 | 22 | 0.0.0.0/0 | |
+-------------+-----------+---------+-----------+--------------+
创建确保从任意ip访问能ping通,能ssh进
3.9 设置VNC(可选)
VNC实际上是非必须的,不过既然Openstack有这功能,我们加入它实际上也不费力: 首先修改/etc/nova/nova.conf,在里面加入下面的内容,确保novncproxy_base_url这里的ip是你自己openstack的ip
novncproxy_host = 0.0.0.0novncproxy_port = 6080
novncproxy_base_url=:6080/vnc_auto.html
vnc_enabled=true
vncserver_listen=127.0.0.1
vncserver_proxyclient_address=127.0.0.1
安装novnc模块
# yum install openstack-nova-novncproxy openstack-nova-consoleauth# service openstack-nova-novncproxy start
# service openstack-nova-consoleauth start
# chkconfig openstack-nova-novncproxy on
# chkconfig openstack-nova-consoleauth on
# service openstack-nova-compute restart
如果你安装到这里,那么基本上大部分的内容都已经安装完了,接下来就剩上传镜像并创建第一个实例了~!