将安装包拷贝到主控端主机
在主控端主机安装ansible,sh setup.sh
确认安装成功后,编辑hosts文件(按步骤逐个添加主机组,不要一开始全部配置好)
[site-init]下的主机列表为被控制的主机(按照当前ai建模方案,即为mongo集群和服务以及中间件模块所在的主机)
在roles目录下,执行
ansible-playbook site.yml -i /opt/offline_install/ai_model_ansible/host
可完成秘钥分发
安装基础组件docker,先定义一个主机组如[python-docker-server],然后编辑docker-ce下的vars变量
如图为设置docker安装路径和docker数据路径以及创建docker net和网段
创建一个yml文件,例如install_docker.yml
其中hosts即为hosts文件中的主机组,role为tasks所在的文件夹名
执行ansible-playbook install_docker_ce.yml -i /opt/offline_install/ai_model_ansible/host
等待执行完毕后,主机组中所有主机均以安装docker
同理可安装完python3和对应python docker模块(必须安装)
开始部署中间件,以nginx为例
在nginx的vars中,设置镜像版本,容器名,要映射端口的变量名和端口值
在hosts文件中定义如下主机组,要加上python路径(路径为安装python时定义的,一般不用改)
安装步骤如下
从files文件中复制nginx镜像到各个主机,然后倒入镜像,然后从templates中拷贝配置模板文件到指定位置,最后创建容器
其中templates可使用变量和jinjia2语法来动态生成配置文件
- 部署应用服务的步骤
由于当前镜像无法支持导入整个配置文件作为启动参数,所以在获取镜像前需要提前知道部署环境的服务器信息,生成一个专属的配置文件(改过程可以由开发负责人完成),将生成的镜像拷贝到files目录下即可
- 其他说明
groups中的变量,创建一个和主机组同名的文件,改文件里的变量可以被使用改主机组的task引用
Groups中的all文件中的变量,可以被所有主机引用
Vars中定义的变量优先级高于groups,以此类推,离使用变量名越近的定义优先级越高
当前spark集群的安装不包含在改脚本内