Ansible 批处理实战( 二 )

Ansible 批处理实战

文章插图
File 模块该模块用于设置文件的属性,比如创建文件、创建链接文件、删除文件等
  • 在 /tmp 下创建 app 目录
ansible guance -m file -a 'path=/tmp/app state=directory'
Ansible 批处理实战

文章插图
【Ansible 批处理实战】查看 /tmp 目录
ansible guance -m shell -a 'ls -l /tmp'
Ansible 批处理实战

文章插图
  • 删除之前从 ansible01 复制过来的 ansible.cfg 文件
ansible guance -m file -a 'path=/tmp/ansible.cfg state=absent'
Ansible 批处理实战

文章插图
Fetch 模块该模块用于从远程某主机获?。ǜ粗疲┪募奖镜?
  • 拉取远程主机 /tmp/hello 文件至 /root 目录
ansible guance -m fetch -a 'src=https://www.huyubaike.com/tmp/hello dest=/root'
Ansible 批处理实战

文章插图
在 /root 目录下 , 可以看到两个新目录 (远程主机 ip 为目录名称)
yum -y install treetree /root
 
Ansible 批处理实战

文章插图
观测云应用批量安装使用 shell 模块安装 datakit (注意修改对应的 token)
ansible guance -m shell -a 'DK_DATAWAY="https://openway.guance.com?token=token" bash -c "$(curl -L https://static.guance.com/datakit/install.sh)"'查看进程是否已经启动
ansible guance -m shell -a 'ps -ef|grep datakit|grep -v grep'
Ansible 批处理实战

文章插图
批量配置
  • 开启 netstat 插件
使用 shell 模块复制文件 netstat.conf.sample 为 netstat.conf
ansible guance -m shell -a 'cp /usr/local/datakit/conf.d/host/netstat.conf.sample /usr/local/datakit/conf.d/host/netstat.conf'批量重启 datakit
ansible guance -m shell -a 'systemctl restart datakit'批量升级新建 datakit 升级 yaml 文件 , /etc/ansible/dk_upgrade.yaml
- hosts: guanceremote_user: roottasks:- name: dk versioncheckshell: datakit--version|grep -i upgrade|wc -lregister:version-name: dkupgradewhen: version.stdout >"0"shell: DK_UPGRADE=1bash -c"$(curl -Lhttps://static.guance.com/datakit/install.sh)"运行 playbook
ansible-playbook /etc/ansible/dk_upgrade.yaml 
Ansible 批处理实战

文章插图
查看 datakit 版本已经为最新
ansibleguance -m shell -a'datakit --version'
Ansible 批处理实战

文章插图
添加定时任务 crontab -e (每天 02 点 02 分执行批量升级)
02 02* ** ansible-playbook /etc/ansible/dk_upgrade.yaml

推荐阅读