Ansible pull模式
Ansible"拉模式"在机器数量较多的时候,可以提高性能.
目前想到的场景:保障系统重要的配置文件被修改,定时去检查,一旦发现被修改就进行同步git仓库文件.
-
git仓库文件结构
[root@xxx ansible-pull-test]# tree . ├── hosts ├── README.md ├── roles │ ├── db │ │ ├── files │ │ │ └── ansible.conf │ │ └── tasks │ │ └── main.yml │ └── web │ ├── files │ ├── tasks │ └── templates ├── shenchan.retry └── shenchan.yml
测试用到db,在配置ansible.conf配置文件被修改时,每隔一段时间可以进行检测.
# db/tasks/main.yml --- - name: copy ansible.conf copy: src=ansible.conf dest=/root owner=root group=root register: result
-
客户端建立cron任务
建立cron任务,可以避免ansible.conf被恶意修改;每隔5min检测一次.
# -C 分支 -d 目的地 -i 主机路径 -e 添加参数 -o 只有git仓库发生改变才执行playbook */5 * * * * ansible-pull -C master -d /root/test -i /opt/ansible-pull-test/hosts -U <github仓库> -e "role=db" shenchan.yml -o
git仓库建立
在本地mkdir一个目录,作为本地仓库目录,然后进行提交
git init
git add .
git commit -m ''
git remote add origin <github仓库>
git push -u origin master # 第一次提交 加-u
git pull --rebase origin master # 注意:如果仓库中有其他文件,而本地没有,建议先执行该操作. 其实每次提交时,应该执行此操作,合并主分支,在提交
git push origin master