前段时间用到了,过了几个星期觉得自己差不多快忘了,于是留下点东西
背景:需要一个脚本来自动化支持文件传输功能,将服务端传输到客户端,客户端可配置无需操作
采用原因:支持api操作,基于python开发,默认使用ssh登录,可扩展性强(主要是有老的项目用到了!)
废话不多说,直接上手!
推荐文章:https://ansible-book.gitbooks.io/ansible-first-book/
一安装
yum install python-pip
pip install ansible
或者(推荐安装,这样配置文件比较固定在文件夹/etc/ansible/)
yum install epel-release -y
yum install ansible –y
这里我采用了第一种
这里都是文件,只好自己在有权限都文件夹下新建一个目录以及文件来包含需要传输的host
二:配置ssh免密登录
网上方法很多,可自行搜索解决
三:操作
第一步:测试是否连接:ansible all -i /Users/zhouxl/ansible/inventorys/hosts -u ops -a “pwd"
说明: all为hosts定义的ips集合 -i 后为取的hosts文件 -u 登录用户 -a "pwd" 格式固定
即证明服务端可联客户端
四:简单操作指令
传输文件:
ansible all -i /Users/zhouxl/ansible/inventorys/hosts -u ops -m copy -a "src=/Users/zhouxl/tuya/dome/README.md dest=/tmp”
说明:all为hosts定义的ips集合 -i 后为取的hosts文件 -u 登录用户 -m 方法名 -a “src=源文件地址 dest=目标文件夹”
文件传输成功!
五扩展脚本型任务ansible-playbook
官方参考的实例地址https://github.com/ansible/ansible-examples
将上面任务改造如下:
https://ansible-book.gitbooks.io/ansible-first-book/advance/playbook/handler.html有更详细的
运行指令:
ansible-playbook -v -i /Users/zhouxl/ansible/inventorys/hosts /Users/zhouxl/tuya/dome/src/main/resources/application_test.yml
同样能达到目的!具体业务具体实现