Linux 自动化运维工具 ansible
1.简介
ansible是一个自动化运维工具,基于python开发,实现了批量系统配置、批量程序部署、批量命令执行等功能;
2.安装
只需要在客户端机器上安装ansible命令,无需每台服务器都安装。
安装命令:yum install -y ansible
3.常用命令选项说明
-i:指定host文件路径
-m:模块名称
-a:模块参数
-f:执行线程数
4.使用
编写一个inventory文件,文件名字可以随便定义,这里我们命名为hosts
,文件内容格式如下:
4.1.执行远程命令
ansible -i hosts ip_list -m shell -a "df -h"
4.2.执行远程脚本
ansible -i hosts ip_list -m script -a "start.sh"
#拷贝start.sh脚本到远程服务器并执行。
4.3.分发文件到远程服务器
4.3.1.复制单个文件
ansible -i hosts ip_list -m copy -a "src=/opt/sourcefile dest=/opt/targetfile"
4.3.2.复制压缩文件到远程并解压
ansible -i hosts ip_list -m unarchive -a "src=/opt/test.tar.gz dest=/opt/"
4.4.修改文件内容
4.4.1.插入或者替换文件内容
当指定内容不存在则插入一行到文件末尾,如果存在则忽略不做任何操作:
ansible -i hosts ip_list -m lineinfile -a "path=/opt/test.txt line='test file update'"
替换文件中匹配正则的行成指定内容(line中的内容),如果多次匹配则只替换最后一次匹配行;当指定内容匹配不上则插入一行到文件末尾:
ansible -i hosts ip_list -m lineinfile -a "path=/opt/test.txt regexp='compress.type=*' line='test file update'"
4.4.2.删除文件内容
删除文件中和指定内容相同的所有行
ansible -i hosts ip_list -m lineinfile -a "path=/opt/test.txt line='test file update' state=absent"
删除文件中匹配正则的所有行
ansible -i hosts ip_list -m lineinfile -a "path=/opt/test.txt regexp='compress.type=*' line='test file update' state=absent"
版权声明: 本文为 InfoQ 作者【杨仪军】的原创文章。
原文链接:【http://xie.infoq.cn/article/c52ff063e338fc618c7a7ea3a】。文章转载请联系作者。
评论