Openshift All In One工具制作的初衷:

  • 工作中为了测试各种情况,比如备份恢复等,经常需要部署一套全新的Openshift环境,虽然镜像与安装包都是现成,但是部署过程中还是很容易出错,毕竟还是有些复杂的。竟然部署过程是一致的,那就干脆用脚本化,一键到位得了。
  • Openshift3.9部署手册,这是我之前整理的一篇单机部署Openshift 3.9的手册,有一些朋友看了后,按照上面的操作还是会遇到一些问题,毕竟步骤有那么多,差了一步,就很容易就会失败。有了这个脚本工具后,想要部署测试Openshift的朋友就很容易去部署测试了,而不是在部署这一步就放弃了。
  • 有些厂商提供了Openshift的解决方案,但是做支持的厂商朋友并不太熟悉容器平台环境,也想在自己的环境下部署一套Openshift来测试,最后往往困难重重,从展望到放弃。

做个自动化工具,让所有关心Openshift/K8s的朋友就可以跳过部署的步骤,快速进入到Paas这个神奇的世界,去了解到自己真正关心的内容。

进入正题

安装步骤

  1. 准备一台主机/虚拟机(CentOS 7.4以上, CPU > 2core, Memory > 4G)

  2. 将一键部署脚本拷贝到主机上

  3. cd到openshift-oneclick-allinone目录

    1
    cd openshift-oneclick-allinone
  4. 运行部署(必须切到root账号)

    1
    2
    sudo su
    /bin/bash deploy_openshift.sh
  5. 本地绑定hosts

    1
    2
    # HOSTNAME 默认为os39.test.it.example.com
    <ip> os39.test.it.example.com
  6. 浏览器访问

1
2
# HOSTNAME 默认为os39.test.it.example.com
https://os39.test.it.example.com:8443

默认账号:admin
默认密码:admin

结果展示

  • 用本地的Vagrant创建的Centos 7.4的虚拟机(VirtualBox)
  • 配置2核4G

一键部署的Openshift3.9

工具说明

该工具具有一定的可配置性

查看config.yml文件

1
2
3
4
5
6
7
CHANGEREPO: true
HOSTNAME: os39.test.it.example.com

Change_Base_Registry: false
Harbor_Url: harbor.apps.it.example.com

FULL_INSTALL: false

说明:

  • CHANGEREPO: 是否使用files/all.repo替换系统默认repo源
  • HOSTNAME:安装Openshift的主机的hostname,也是集群的访问域名
  • Change_Base_Registry:是否使用私有镜像仓库
  • Harbor_Url:私有镜像仓库地址,Change_Base_Registry为True时有效
  • FULL_INSTALL:是否全量安装(包括日志,监控等)
    如果选择全量安装(FULL_INSTALL=true),请保证主机内存有16G.

如果执行过程中出现异常,不用怕。工具是基于ansible的,幂等性。

重新运行deploy_openshift.sh就OK了。

1
2
sudo su
/bin/bash deploy_openshift.sh

有什么疑问和改进的想法,欢迎留言。

1
2
3
4
5
6
# 报错 ERROR! | failed expects hostvars is a dict
In /etc/ansible/playbooks/openshift-ansible/roles/openshift_master_certificates/tasks/main.yml around line 63 I simply changed the with_items clause from
- "{{ hostvars[inventory_hostname] | certificates_to_synchronize }}"
to
- "{{ hostvars[inventory_hostname]['ansible_facts'] | certificates_to_synchronize }}"
and everything progressed.