ansible学习系列2-ansible常用模块使用
1. 查看支持的模块
- [root@localhost ~]# ansible-doc -l
这里我们看下ansible的支持的模块个数
- [root@localhost ~]# ansible-doc -l |wc -l #查看支持的模块个数
- [root@localhost ~]# ansible --version #查看我们的ansible版本号
- ansible 2.3.1.0
- config file = /etc/ansible/ansible.cfg
- configured module search path = Default w/o overrides
- python version = 2.6. (r266:, Aug , ::) [GCC 4.4. (Red Hat 4.4.-)]
2.获取模块的帮助
这里我们使用ansible-doc获取下command模块的使用方式。
- [root@localhost ~]# ansible-doc command
3.1 command模块
command :作为ansible的默认模块,可以允许远程主机范围内的所有shell命令。
注意: 在command的命令中含有像`$ HOME'这样的变量和像``<“',`”>“, `“”“”,“”;“”和“”&“'将无法正常工作(如果需要这些功能,请使用[shell]模块)
- [root@localhost ~]# ansible 192.168.168.11* -m command -a 'ip addr show dev eth0'
- 192.168.168.115 | SUCCESS | rc= >>
- : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
- link/ether ::::8d:e2 brd ff:ff:ff:ff:ff:ff
- inet 192.168.168.115/ brd 192.168.168.255 scope global eth0
- inet6 fe80:::56ff:fe29:8de2/ scope link
- valid_lft forever preferred_lft forever
- 192.168.168.111 | SUCCESS | rc= >>
- : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
- link/ether :0c:::: brd ff:ff:ff:ff:ff:ff
- inet 192.168.168.111/ brd 192.168.168.255 scope global eth0
- inet6 fe80::20c:29ff:fe77:/ scope link
- valid_lft forever preferred_lft forever
3.2 script模块
功能:在远程主机上执行主控端的脚本,相当于scp+shell组合。
- [root@localhost ~]# ansible all -m script -a "/home/test.sh 12 34"
3.3 shell模块
功能:执行远程主机的shell脚本文件
- [root@localhost ~]# ansible all -m shell -a "/home/test.sh"
shell替代command执行
- [root@localhost ~]# ansible 192.168.168.11* -m shell -a 'ip addr show dev eth0'
- 192.168.168.111 | SUCCESS | rc= >>
- : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
- link/ether :0c:::: brd ff:ff:ff:ff:ff:ff
- inet 192.168.168.111/ brd 192.168.168.255 scope global eth0
- inet6 fe80::20c:29ff:fe77:/ scope link
- valid_lft forever preferred_lft forever
- 192.168.168.115 | SUCCESS | rc= >>
- : eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
- link/ether ::::8d:e2 brd ff:ff:ff:ff:ff:ff
- inet 192.168.168.115/ brd 192.168.168.255 scope global eth0
- inet6 fe80:::56ff:fe29:8de2/ scope link
- valid_lft forever preferred_lft forever
3.4 copy模块
功能: 实现主控端向目标主机copy文件。
- [root@localhost ~]# ansible all -m copy -a "src=/home/test.sh dest=/tmp/ owner=root group=root mode=0755"
#src 主控端文件位置
#dest 被控端目标位置
#owner 文件复制过去后的所有者
#group 文件复制过去后的所属组
#mode 文件的权限设定,执行a+x这种方式
3.5 stat模块
功能: 获取远程文件的状态信息,包括atime,ctime,mtime,md5,uid,gid等信息。
- [root@localhost ~]# ansible all -m stat -a "path=/etc/sysctl.conf"
3.6 yum模块
功能: 安装软件包。
- [root@localhost ~]# ansible all -m yum -a "name=httpd state=latest disable_gpg_check=yes enablerepo=epel"
#name 包名
#state (Choices: present, installed, latest, absent, removed)[Default: present]
#disable_gpg_check:禁止gpg检查
#enablerepo:只启动指定的repo
3.7 cron模块
功能:远程主机crontab配置
- [root@localhost ~]# ansible all -m cron -a "name='test' hour='2-5' minute='*/5' day='1' month='3,4' weekday='1' job='ls -l' user=tom"
192.168.168.115 | SUCCESS => {
"changed": true,
"envs": [],
"jobs": [
"test"
]
}
192.168.168.111 | SUCCESS => {
"changed": true,
"envs": [],
"jobs": [
"test"
]
}
我们去被控主机看下生成的crontab作业
- [root@localhost ~]# crontab -l -u tom
- #Ansible: test
- */ - , ls -l
删除指定crontab
- [root@localhost ~]# ansible all -m cron -a "name=test state=absent"
3.8 mount模块
功能: 挂载文件系统
- [root@localhost ~]# ansible 192.168.168.111 -m mount -a "path=/mnt/data src=/dev/sd0 fstype=ext3 ots=ro state=present"
注:mount已经使用path代替了原来的name参数,但是name参数还是可以使用的。
3.9 service模块
功能: 服务管理
- [root@localhost ~]# ansible all -m service -a "name=httpd state=restarted" #启动服务
- [root@localhost ~]# ansible all -m service -a "name=httpd state=running" #查看服务状态
- [root@localhost ~]# ansible all -m service -a "name=httpd state=stoped" #停止服务
3.10 user模块
功能: 远程主机的用户管理
- [root@localhost ~]# ansible all -m user -a "name=jerry comment=' doubi jerry'" #添加用户 详细参数参考ansible-doc user
- [root@localhost ~]# ansible all -m user -a "name=jerry state=absent remove=yes" #删除用户
ansible学习系列2-ansible常用模块使用的更多相关文章
- SaltStack学习系列之state常用模块
常用模块:cron,cmd,file,mount,ntp,pkg,service,user,group cmd模块 参数: name:要执行的命令 unless:用于检查的命令,只有unless指向的 ...
- Python学习系列(六)(模块)
Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...
- 自动化运维工具Ansible实战(四)常用模块
转载链接:http://blog.51cto.com/liqingbiao/1962609 Ansible模块按功能分为:云模块.集群模块. 命令模块.数据库模块.文件模块.资产模块.消息模块.监 ...
- Func系列2:常用模块及API
简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).Fil ...
- Django学习之六:Django 常用模块导入记忆
Django 常用模块导入记忆 django相关 1. urls相关操作 from django.urls import path, re_path, include from django.urls ...
- Python学习—基础篇之常用模块
常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
- Ansible 快速安装配置,常用模块
Ansible是一个轻量级的工具,基于python语言实现,通过python中的paramiko来连接并管理机器, 功能强大(YAML,PlayBook,模块化功能),不需要安装客户端, 通过ssh连 ...
- Ansible笔记(7)---常用模块之系统类模块(cron、service)
一.cron模块 1.1作用: cron 模块可以帮助我们管理远程主机中的计划任务,功能相当于 crontab 命令. 在了解cron模块的参数之前,先写出一些计划任务的示例: # 示例1,每天的1点 ...
- Ansible笔记(2)---常用模块之文件操作
一.copy模块 1.1作用: copy模块是将ansible主机上的文件拷贝到远程受控主机 1.2常用参数: src参数 :用于指定需要copy的文件或目录. dest参数 :用于指定文件将被拷贝到 ...
随机推荐
- 极速创建 IOS APP !涛舅舅苹果 IOS APP自助生成系统!不用证书、不用越狱、永久可用
不用签名将网页封装成苹果APP,无需苹果企业签名,IPA签名,ios签名,免越狱安装 (本方法只支持网站封装app,原生的用不了,详细请咨询客服) 近期很多朋友问我把网站变成app的方法,原因很多种, ...
- MYSQL必知必会学习笔记
8.1.1 百分号( %)通配符最常使用的通配符是百分号( %).在搜索串中, %表示任何字符出现任意次数.例如,为了找出所有以词jet起头的产品,可使用以下SELECT语句:SELECT prod_ ...
- 几个VB常见又内涵的错误
第一位内涵的就是:没有对象 找到对象,却发现是别人的对象 不能加载也不能卸载...这到底是什么对象 哈哈哈~
- 理解JavaScript【转】
第一题 if (!("a" in window)) { var a = 1; } alert(a); 第二题 var a = 1, b = function a(x ...
- linux系统资源监控
top命令 1.平均负载(load average): 正在耗费CPU进程与正在等待io的进程之和,三个值分别是一分钟,五分钟,十五分钟的平均负载,负载值只要小于CPU颗粒数属于正常情况 任务进程(T ...
- ORACLE启动报错ORA-03113: end-of-file on communication channel
使用过程中发现oracle运行很慢(其实应该先关注空间问题),就准备关机重启一下,关不掉就强制关闭,然后启动就报错了. 1.SQL> startup ORACLE instance starte ...
- python 错误记录
class Func: d = dict() def __setitem__(self, key, value): # xxx object does not support item assignm ...
- 配置JDK环境变量与配置JRE
1. 如何配置jdk,x下载jdk 网站: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21 ...
- CSS-默认padding 和 margin
一.h1~h6标签:有默认margin(top,bottom且相同)值,没有默认padding值. 在chrome中:16,15,14,16,17,19; 在firefox中:16,15,14,16, ...
- k8s probe
livenessProbe: httpGet: path: /abc/401 port: 8384 scheme: HTTP