ansible的常用模块

本文详细介绍了Ansible的Ad-Hoc命令集及其特点,包括并发执行和帮助工具ansible-doc。接着,深入探讨了ansible的常用模块,如command、shell、script、copy、fetch、file、archive、unarchive、hostname、cron、yum_repository、service、firewalld、user、group、lineinfile、replace、setup和debug模块,每个模块都通过实例进行了说明,适合运维人员参考。
摘要由CSDN通过智能技术生成

一、ansible Ad-Hoc命令集

1、ansible提供两种方式去完成任务,一是 Ad-Hoc 命令,一是写 ansible playbook。
2、Ad-Hoc更注重于解决一些简单或者平时工作中临时遇到的任务,相当于Linux系统命令行下的Shell命令,后者更适合于解决复杂或需固化下来的任务,相当于Linux系统的Shell Scripts。
3、Ad-Hoc 使用场景:
(1)关闭所有不必要的服务器
(2)临时更新Apache或Nginx的配置文件
4、ansible的并发特性
Ansible和Ansible-playbook默认会fork 5个线程并发执行命令,如果同时操作的主机数比较多的话,可以调整到一个更大的值,用-f指定线程数。

ansible webserver -m ping -f 6

5、ansible提供了类似于man功能的help说明工具ansible-doc,ansible-doc用法:

显示所有可用模块 ansible-doc -l
列出指定模块 ansible-doc 模块名称
简要列出指定模块 ansible-doc -s 模块名称
ansible-doc -l | grep shell
ansible-doc -l | wc -l
ansible-doc ping
ansible-doc -s shell

在这里插入图片描述
在这里插入图片描述

二、ansible的命令参数

参数 功能
-i 指定hosts文件路径,默认在/etc/ansible/hosts
-m 指定使用的module名称,默认command模块
-a 指定模块参数
-k(小写) 提示输入ssh密码,并非基于ssh密钥认证
-K(大写) 提示输入sudo密码
-b 使用sudo执行命令
-become-user= 指定sudo的用户
-f,-forks=NUM NUM默认是整数5,指定fork开启同步进程的个数
-u 指定远程主机的执行用户
-v 详细模式,如果执行成功,输出详细结果,-vv -vvv更详细过程
-C 预执行检测
-T 执行命令的超时时间,默认10s
--list 显示主机列表,也可以用--list-hosts
--version 显示版本

ansible的基本颜色代表

绿色 执行成功但未对远程主机做任何改变
黄色 执行成功并对远程主机做改变
红色 执行失败

三、ansible的常用模块

  • 以下实验的配置文件如下
    在这里插入图片描述

1、command模块

在远程主机执行命令,此模块为默认模块

常用参数 功能
chdir 执行命令前先进入到指定目录
cmd 运行命令指定
creates 如果文件存在将不运行
removes 如果文件存在将运行
ansible demo -m command -a "useradd lee"
ansible demo -m command -a "chdir=/mnt touch file1 file2"
ansible demo -m command -a "chdir=/mnt creates=/mnt/file1 rm -fr file1"
ansible demo -m command -a "chdir=/mnt removes=/mnt/file2 rm -fr file2"

在这里插入图片描述file1未被删除,file2被删除
在这里插入图片描述Linux中的很多通配符在command模块中不支持

2、shell模块、script模块

(1)shell模块
shell模块与command模块类似

常用参数 功能
chdir 执行命令前先进入到指定目录
cmd 运行命令指定
creates 如果文件存在将不运行
removes 如果文件存在将运行
executable 指定执行环境,默认为sh
ansible demo -m shell -a "chdir=/mnt/ touch test{1..3}"
ansible demo -m shell -a "ps ax | grep $$"
ansible demo -m shell -a "executable=/bin/bash ps ax | grep $$"

shell模块支持通配符
在这里插入图片描述echo $$:输入当前会话的进程号
在这里插入图片描述 (2)script模块
在ansible主机中写好的脚本在受控主机中执行

vim test.sh
ansible demo -m script -a "test.sh"

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值