ManageIQ之部署与安装
ManageIQ前言
- 最近Big-man在接触云计算平台管理以及VMware纳管方面的知识,在部门的产品经理推荐下接触到了ManageIQ的相关知识。
- RedHat在2012年11月收购了ManageIQ,目的是为了在CloudForms平台上更快地实现这些功能。
- CloudForms平台的创建是因为企业用户并不满足于OpenStack提供的云基础架构。他们还需要像费用返还、协议、报表和自动化这样的功能。他们不希望OpenStack成为一款独立于他们现有的和未来的企业级虚拟化平台和公有云之外的孤岛产品。
- CloudForms平台和ManageIQ的结合是为了更加方便地进行混合云的管理。
ManageIQ的安装
- Big-man安装ManageIQ想要对接公司的云平台进行监管,所以刚开始Big-man的想法就是在云平台启动虚拟机来安装ManageIQ。但是ManageIQ对于OpenStack的配置要求需要如下:
参考ManageIQ中OpenStack的配置详情。
- 这个配置需要进行资源的申请,所以Big-man只能等待资源的申请完成之后再次进行安装了,然后Big-man在自己推导的行云环境上进行安装,但是推导出来之后计算机卡顿太严重了,所以就没有进行继续验证了。
ManageIQ安装在docker
-
Big-man重新启动了一个docker服务,拉取了ManageIQ镜像然后进行镜像启动。配置在官方文档上说明比较清晰,参考官方文档。
-
操作如下:
You can test ManageIQ running in a Docker container using the images that the ManageIQ project makes available on the Docker Hub. This is a great option if you have a Linux PC(but it works everywhere Docker is available).
If you are on Linux, make sure the Docker service is running:
$ sudo service docker start
Step 1: Download and deploy the appliance
Pull the ManageIQ docker image:
$ sudo docker pull manageiq/manageiq:ivanchuk-3
Step2: Run the container
$ sudo docker run -d -p 8443:443 manageiq/manageiq:ivanchuk-3
ManageIQ is now up and runing.
- 在启动docker service的时候出现这样的问题:
docker起不来报错:Failed to start Docker Application Container Engine.
[root@localhost ~]# systemctl restart docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
[root@localhost ~]# systemctl status docker
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 日 2019-05-19 17:15:19 CST; 6s ago
Docs: http://docs.docker.com
Process: 13393 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json --graph=/localdisk/docker --storage-driver=overlay --registry-mirror=https://docker.mirrors.ustc.edu.cn $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
Main PID: 13393 (code=exited, status=1/FAILURE)
5月 19 17:15:19 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
5月 19 17:15:19 localhost.localdomain dockerd-current[13393]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following direc...edu.cn])
5月 19 17:15:19 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
5月 19 17:15:19 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
5月 19 17:15:19 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
5月 19 17:15:19 localhost.localdomain systemd[1]: docker.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
- 解决方法:
1.防火墙和selinux都关了
临时关闭:
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
永久关闭:
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启服务reboot
- 我遇到的时防火墙的问题,关闭防火墙(我这里采用的时永久关闭防火墙的方式)之后还是存在这样的问题可以试一下第二种方式,如下:
2.修改/etc/docker/daemon.json这个文件(就这样粘贴复制,别多逗号)
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
- 如果上面两种方式尝试了之后还是没有启动docker的话,再尝试一下下面的方式:
3.重启docker,在不行重启虚拟机
systemctl daemon-reload
systemctl restart docker
- 配置成功之后,通过查看docker的日志信息查看一下启动的状态情况。
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7da659e720df manageiq/manageiq:gaprindashvili-5 "/usr/local/bin/du..." 6 hours ago Up 6 hours 22/tcp, 80/tcp, 0.0.0.0:8443->443/tcp clever_shirley
[root@localhost ~]# docker logs -f 7da659e720df
- 然后启动起来通过页面进行浏览器访问,访问效果图如下:
- 可以访问到这个效果页面,也就说明ManageIQ启动成功了。默认的用户名和密码如下:
username: admin
password: smartvm
- 进入ManageIQ的效果页面之后可以进行ManageIQ的基本操作了解。
Manage部署在OpenStack
- 在ManageIQ的官方文档中提供了ManageIQ部署在OpenStack云平台上的步骤方式。
- 在部门的行云环境上去启动了一个8VCpus-16GB-300GB的实例来启动ManageIQ。
- 在ManageIQ的官方链接中下载OpenStack平台的ManageIQ镜像,下载下来的默认格式是qcow2。
注意: qcow2与raw的区别
qemu-img
是QEMU的磁盘管理工具,在qemu-kvm
源码编译后就会默认编译好qemu-img
这个二进制文件。qemu-img
也是QEMU/KVM使用过程中一个比较重要的工具,可以用其创建两种格式(raw和qcow2)的虚拟机磁盘。
两种虚拟机磁盘的区别
raw启动的虚拟机会比QCOW2启动的虚拟机I/O效率更高一些(25%)
qcow2是一种当下比较主流的虚拟化磁盘格式,具有占有空间小,支持加密,支持压缩,支持快照的特点。
- 所以在部门的行云环境上采用的ManageIQ的镜像启动格式是
raw
格式。如下图所示:
raw
格式的镜像,镜像大小为66GB,这就说明raw
格式的镜像确实存在占有空间大的特点了。- 启动实例(可以通过OpenStack的WebUI-Horizon或者OpenStack的CLI(命令行进行创建)))。
- 启动起来之后需要配置网络,Big-man对于网络的配置不太熟悉,所以在WebUI上选择之后。
- 发现ManageIQ并没有IP注入的功能,也就是配置网络没有作用。进入ManageIQ的虚拟机查看网络配置发现(
ip a
查看ip地址返回没有看到需要的ip地址,ip a|grep "55"
没有出现ip地址),网卡没有启动,IP地址也没有注入。所以配置的Floating IP地址也没法进行通信(无法Ping通)。 - 通过静态配置虚拟机的网络,
vim /etc/sysconfig/network-scriptes/ifcfg-eth0
,配置如下:
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=static
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.5.55
netmask=255.255.255.0
GATEWAY=192.168.5.1
- 重新启动
systemctl restart network
,再次查看就可以查看到配置的ip地址了。 - 网络配置通了,可以Ping通了。可以通过Floating IP地址进行访问了
172.16.8.94
,可以访问ManageIQ的页面了。如下图所示:
- ManageIQ部署和安装在OpenStack平台上就算完成了。登录的用户名和密码如下:
username: admin
password: smartvm
- ManageIQ虚拟机的登陆用户名和密码如下:
username: root
password: smartvm
- 查看ManageIQ的虚拟机情况需要用此进行登录。