Linux 自动化运维工具 ansible

用户头像
杨仪军
关注
发布于: 2020 年 06 月 01 日

1.简介

ansible是一个自动化运维工具,基于python开发,实现了批量系统配置、批量程序部署、批量命令执行等功能;

2.安装

只需要在客户端机器上安装ansible命令,无需每台服务器都安装。

安装命令:yum install -y ansible

3.常用命令选项说明

-i:指定host文件路径

-m:模块名称

-a:模块参数

-f:执行线程数

4.使用

编写一个inventory文件,文件名字可以随便定义,这里我们命名为hosts,文件内容格式如下:



[all:vars]
ansible_ssh_passwd=xxxx #ssh访问密码
[ip_list] #需要操作的服务器IP列表
192.168.1.1
192.168.1.2
192.168.1.3

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"



发布于: 2020 年 06 月 01 日 阅读数: 152
用户头像

杨仪军

关注

学海无涯 2020.03.29 加入

还未添加个人简介

评论

发布
暂无评论
Linux 自动化运维工具 ansible