
基于ansible远程docker环境安装halo博客系统 原创
本文档主要介绍如何使用ansible在远程centos服务器docker环境快速安装halo博客系统,目标服务器为一台阿里云ECS,安装操作系统为阿里云提供的公共镜像Centos7.9-64。且已经预装docker环境。
halo博客系统是一款现代化的开源博客/CMS系统,值得一试。halo博客系统支持h2和mysql,也提供了官方镜像,本安装实践将基于如下两种架构模式分别进行安装演示。
单容器架构:halo系统
多容器架构:nginx+halo系统
准备
硬件
- 一台阿里云ECS:1c2g40g
- 预装docker环境 参考 基于ansible在centos服务器安装docker
- 一台可以连接阿里云的linux服务器,预装ansible和git,其中ansible版本为2.9.27
基础环境
服务器类型 | OS | 公网IP | 内网IP | 备注 |
---|---|---|---|---|
目标服务器 | Centos7.9(阿里云自带的公共镜像) | 123.23.12.21 | 172.22.3.13 | 阿里云ECS(root/Epay@1002) |
主控端 | Centos7.9 | 192.168.99.240 | 本地LInux服务器 |
安装
远程安装指ssh到主控端,然后通过ansible将halo博客系统容器在目标服务器上启动并运行。多容器架构则会同时启动nginx和mysql容器,nginx容器通过反向代理对外提供服务。
安装python3
目标服务器安装的Centos7.9操作系统默认安装的python版本比较低,其实并不支持ansible的docker容器相关指令;这里我们需要先在目标服务器远程安装一个高版本的python,后续再通过指定python路径的方式去执行ansible脚本就可以成功操作docker容器了。
本步骤中我们先把python3编译安装在/usr/soft/python3目录下,后续启动docker容器均需要指定ansible_python_interpreter为/usr/soft/python3。
另外要注意一下主控端的ansible版本号,本实践使用的ansible版本为2.9.27,如果ansible版本过低可能会导致基于本实践的安装python3失败。
验证
单容器架构安装
验证
可以用浏览器直接访问 http://${ip}:8090,显示如下
多容器架构安装
验证
可以用浏览器直接访问 http://halo.cuiyingfeng.com,显示如下
彩蛋
https://gitee.com/cuiyingfeng/jenkins-ansible-examples 下有一枚彩蛋halo/deploy-all.groovy
,熟悉jenkins的同学可以上车了。
