ansible常见模块及使用方法

目录

1、查看支持的模块

2、获取模块的帮助

3、3个远程命令模块的区别

3.1、command模块

3.2、shell模块

3.3、script模块

 4、copy模块

4.1、 copy模块应用案例

5、file模块

5.1、file模块应用案例

6、ping模块

7、yum模块

7.1、yum模块应用案例

 8、service模块

8.1、service模块案例

8.2、查看httpd状态

 9、user模块

9.1、user模块案例

 10、fetch模块

 11、group模块

11.1、group模块案例


1、查看支持的模块

	[root@cong11 ~]# ansible-doc -l    
	[root@cong11 ~]# ansible-doc -l | wc -l  #查看支持的模块个数
	[root@cong11 ~]# ansible --version      #查看我们的ansible版本号

2、获取模块的帮助

    ansible-doc 模块名 或者ansible-doc -s 模块名  #获取指定模块帮助信息说明
    这里我们使用ansible-doc获取下command模块的使用方式。
 

	[root@cong11 ~]# ansible-doc command
	[root@cong11 ~]# ansible-doc -s command

3、3个远程命令模块的区别

3.1、command模块

command 模块可以帮助我们在远程主机上执行命令。

注意:使用 command 模块在远程主机中执行命令时,不会经过远程主机的 shell处理,在使用 command 模块时,如果需要执行的命令中含有重定向、管道符等操作时,这些符号也会失效,比如”<”, “>”, “|”, “;” 和 “&” 这些符号,如果你需要这些功能,可以参考后面介绍的 shell 模块。

3.2、shell模块

shell 模块可以帮助我们在远程主机上执行命令。与 command 模块不同的是,shell模块在远程主机中执行命令时,会经过远程主机上的/bin/sh程序处理,shell模块支持管道与重定向等符号;所以,我们在终端输入的各种命令方式,都可以使用。

注:但是我们自己定义在/etc/profile或~/.bash_profile中的环境变量,shell模块由于没有加载,所以无法识别;如果需要使用自定义的环境变量,就需要在最开始,执行加载自定义脚本的语句

3.3、script模块

script只能执行脚本,不能调用其他指令,但是script执行的是存放在ansbile管理端上的脚本。script模块跟上面类似,但执行脚本只要两步
第一个步骤:编写一个脚本
第二个步骤:运行ansible命令执行脚本
使用script模块可以在本地写一个脚本,在远程服务器上执行:
在ansible管理端编写一个脚本,这里还是使用上面的test.sh脚本为例:
    总结:script和shell的区别是一个执行控制端的脚本,一个执行远程端的脚本。

 4、copy模块

    实现主控端向目标主机拷贝文件或目录,类似scp功能
    copy模块常用选项:
    backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no 
    content:用于替代"src",可以直接设定指定文件的值 
    dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录 
    directory_mode:递归的设定目录的权限,默认为系统默认权限
    force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
    src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用"/"来结尾,则只复制目录里的内容,如果没有使用"/"来结尾,则包含目录在内的整个内容全部复制,类似于rsync。

4.1、 copy模块应用案例

例1:使用src,把ansible主机上的/etc/hosts文件复制到主机组中机器的/tmp目录下

[root@cong11 ~]# ansible web_servers -m copy -a 'src=/etc/hosts dest=/tmp/ owner=root group=root mode=640 backup=yes'

说明:    

    #src 主控端文件位置(源文件地址)
    #dest 被控端目标位置(目标地址)
    #owner 文件复制过去后的所有者
    #group 文件复制过去后的所属组

    #content 将指定内容覆盖写入到目标主机文件中
    #force=no 当主控端拷贝的文件名和目标名一致,但是内容不一致,放弃拷贝
    #force=yes 当主控端拷贝的文件名和目标名一致,但是内容不一致,则进行覆盖
    #mode 文件的权限设定
    #backup=yes 如果目标位置存在同名的文件,在覆盖之前将原文件备份

 192.168.121.13 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true,  #是否对目标主机信息进行改变
    "checksum": "7335999eb54c15c67566186bdfc46f64e0d5a1aa", 
    "dest": "/tmp/hosts",  #显示目标路径信息
    "

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值