部署环境搭建

  • CentOS 7.5 x64

修改 SSH 端口

  • 配置文件介绍(记得先备份):sudo vim /etc/ssh/sshd_config

  • 打开这一行注释:Port 22

    • 自定义端口选择建议在万位的端口,如:10000-65535之间,假设这里我改为 52221

  • CentOS 7:添加端口:firewall-cmd --zone=public --add-port=52221/tcp --permanent

    • 重启防火墙:firewall-cmd --reload

  • CentOS 7 命令:systemctl restart sshd.service

安装后的检测

docker --version && docker-compose --version && java -version && mvn -v && mysql --version && redis-server --version && node -v && npm -v && nginx -V

设置免密登录

  • 在 A 机器上输入命令:ssh-keygen

    • 根据提示回车,共有三次交互提示,都回车即可。

  • 生成的密钥目录在:/root/.ssh

  • 写入:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

  • 测试:ssh localhost

安装 ansible

  • CentOS:sudo yum install -y ansible

    • 查看版本:ansible --version

  • 编辑配置文件:vim /etc/ansible/hosts,在文件尾部添加:

  • 查看自己的内网 ip:ifconfig,假设是:172.16.16.4

  • 让远程所有主机都执行 ps 命令,输出如下

基础设置

  • 禁用

    • firewalld

    • selinux

    • swap

  • 安装

    • zip unzip lrzsz git wget htop deltarpm

    • zsh vim

    • docker docker-compose

  • 创建脚本文件:vim /opt/1-install-basic-playbook.yml

离线安装 jdk

  • 下载 jdk 到 /opt 目录下

  • 创建脚本文件:vim /opt/2-jdk8-playbook.yml

  • 执行命令:ansible-playbook /opt/2-jdk8-playbook.yml

安装 maven

  • 把 maven 放到 /opt 目录下

  • 创建脚本文件:vim /opt/3-maven-playbook.yml

  • 执行命令:ansible-playbook /opt/3-maven-playbook.yml

安装 node

  • 创建脚本文件:vim /opt/4-node-playbook.yml

  • 执行命令:ansible-playbook /opt/4-node-playbook.yml

安装原生 MySQL 5.7(可选 Docker)

  • 创建脚本文件:vim /opt/5-mysql-playbook.yml

  • 执行命令:ansible-playbook /opt/5-mysql-playbook.yml

安装原生 Redis 5(可选 Docker)

  • 创建脚本文件:vim /opt/6-redis-playbook.yml

  • 执行命令:ansible-playbook /opt/6-redis-playbook.yml

安装 Jenkins

  • 创建脚本文件:vim /opt/jenkins-playbook.yml

安装 Redis 5.x(Docker)

  • 启动镜像:

安装 MySQL(Docker)

安装 Prometheus(Docker)

  • 启动

安装 Grafana(Docker)

安装 Portainer(Docker)

  • 创建文件:vim docker-compose.yml

  • 启动:docker-compose up -d

  • 第一次启动会让你创建用户名和密码。第二步就是配置管理哪里的 docker 容器,我这里选择:local

安装 Nginx(Docker)

  • 运行容器:

  • 重新启动服务:docker restart cdk8s-nginx

Jenkins pipeline (Docker 方式运行 tkey-sso-server)

  • 确保 项目根目录有 Dockerfile 文件

  • 特别注意:

Jenkins pipeline (Docker 方式运行 tkey-sso-client-management 后端)

  • 确保 项目根目录有 Dockerfile 文件

  • 特别注意:

Jenkins pipeline (Docker 方式运行 tkey-sso-client-management 前端)

GoAccess

  • GoAccess 建议用本地安装

  • 安装步骤过长,请参考我们的这篇文章:GoAccessarrow-up-right

  • 创建目录:mkdir -p /data/docker/nginx/html/report

  • 手动运行

  • 实时运行

Nginx 最终配置

  • 因为 nginx 在 docker 里面,所以不能用 127.0.0.1

hosts 配置

Last updated