ansible很强大的自动化运维部署工具-推荐使用

OK,上一个项目中用到了ansible,来个小结
不用不知道,一用吓一跳,这玩意儿真的是很强大,很好用!

ansible是什么?

它是一款运维自动化部署工具,通常用在集群环境中,基本上能够实现一键部署。举个栗子,现在有10个微服务运行在一台机器上面,等到上线了,需要部署100台去实现分布式架构,你不可能去一台机器一台机器的去部署、修改对应的配置文件吧。这样不得累死,而且其中某一台配置错了,都找不到错误在哪里。
在这种场景下,ansible诞生了,你只需要部署一台主控机Host(包含写好的应用,配置,脚本等等),然后以这个主控机为模板,批量拷贝到对应的100台机器中。是不是很完美
在这里插入图片描述

核心概念:

  • hosts文件,100台机器对应IP,端口配置都写在这个文件里面,是运行的入口
  • 剧本,执行哪个yml文件
  • yml脚本,例如主任务文件main.yml
  • template模板 ,板j2基础文件,例如xml配置文件对应j2文件
    在这里插入图片描述
    hosts主文件入口
    在这里插入图片描述
    它依赖于python语言,需要提前安装好python环境,在此基础上操作,
    由于我的虚拟机环境用不了了,下面就直接上命令行操作,就不给大家演示运行环境了。

//所有主机执行app.yml 即lcpt分组
ansible-playbook lcpt/app.yml
//指定主机执行app.yml
ansible-playbook --limit=lcpt6 lcpt/app.yml

//nginx配置文件改动需要改动以下目录配置文件
/home/deploy/ansible/lcpt/roles/nginx/templates/nginx.conf.j2

//替换所有服务nginx配置文件 nginx.yml的入口
/home/deploy/ansible/lcpt/roles/nginx/tasks/main.yml ansible-playbook lcpt/nginx.yml

ansible shell模块
指定服务器启停服务
ansible lcpt6 -m shell -a "bin/lc.sh stop trans"
ansible lcpt6 -m shell -a "bin/lc.sh start trans"

//指定主机启停node
ansible lcpt4 -m shell -a "chdir=LCPT/WEB_NODE/fms pm2 stop app.js"
ansible lcpt4 -m shell -a "chdir=LCPT/WEB_NODE/fms pm2 -i 4 start app.js"

执行剧本部分tags
ansible-playbook app.yml --tags "app,cfg" #run 多个tags
ansible-playbook app.yml --tags app # 只run 一个tag
跳过某个task
ansible-playbook app.yml --skip-tags cfg

-------------------所有的yml和远程模块执行都需要在ansible目录下执行

常用到也就是ansible-playbook --limit 按分组执行部署命令,基本上一次脚本整理好之后,后面的批量部署就变得非常简单省事儿。

发布了5 篇原创文章 · 获赞 1 · 访问量 99

猜你喜欢

转载自blog.csdn.net/iYhuitune/article/details/105459911