Linux 自动化运维工具 ansible

1.简介

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

2.安装

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

3.常用命令选项说明

-i:指定host文件路径
-m:模块名称
-a:模块参数
-f:执行线程数

4.使用

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

格式1:

[all:vars]
ansible_ssh_passwd=xxxx     #ssh访问密码

[ip_list]	#需要操作的服务器IP列表
192.168.1.1
192.168.1.2
192.168.1.3

格式2:
使用以下格式时,每个IP需要使用不同的名字。

[all:vars]
ansible_ssh_passwd=xxxx     #ssh访问密码

[ip_1]	#需要操作的服务器IP列表
192.168.1.1
[ip_2]
192.168.1.2
[ip_3]
192.168.1.3

//例
ansible -i hosts ip_1 -m shell -a "df -h"
ansible -i hosts ip_2 -m shell -a "df -h"
ansible -i hosts ip_3 -m shell -a "df -h"

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"

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值