ansible模块详解
【简单介绍】
Ansible是一种agentless(基于ssh),可实现批量配置、命令执行和控制,基于Python实现的自动化运维工具。
有以下两个特性:
- 模块化:通过调用相关模块,完成指定任务,且支持任何语言编写的自定义模块
- playbook:剧本,可根据需要一次执行完剧本中的所有任务或某些任务
本次主要介绍ansible的基本模块。
【command】
在远程主机上执行命令。
不加 -m 选项的时候,默认执行command。
相关参数:
|
chdir |
在此目录下执行命令 |
|
creates |
指定文件存在时,不执行 |
|
removes |
指定文件不存在时,不执行 |
示例:
|
ansible host1 -m command -a "ls" ansible host1 -m command -a "chdir=/testdir ls" |
【setup】
收集远程主机的一些基本信息。
相关参数:
|
filter |
条件过滤 |
示例:
|
# 获取主机的ipv4信息 ansible host1 -m setup -a "filter=ansible_all_ipv4_addresses" # 获取主机内存信息 ansible host1 -m setup -a "filter=ansible_memory_mb" ansible host1 -m setup -a "filter=*mb" |
其他信息:
|
ansible_all_ipv4_addresses |
显示ipv4的信息 |
|
ansible_devices |
显示磁盘设备信息 |
|
ansible_distribution |
显示是什么系统,例centos,suse等 |
|
ansible_distribution_major_version |
显示是系统主版本 |
|
ansible_distribution_version |
显示系统版本 |
|
ansible_machine |
位,还是64位 |
|
ansible_eth0 |
显示eth0的信息 |
|
ansible_hostname |
显示主机名 |
|
ansible_kernel |
显示内核版本 |
|
ansible_lvm |
显示lvm相关信息 |
|
ansible_memtotal_mb |
显示系统总内存 |
|
ansible_memfree_mb |
显示可用系统内存 |
|
ansible_memory_mb |
详细显示内存情况 |
|
ansible_swaptotal_mb |
显示总的swap内存 |
|
ansible_swapfree_mb |
显示swap内存的可用内存 |
|
ansible_mounts |
显示系统磁盘挂载情况 |
|
ansible_processor |
显示cpu个数(具体显示每个cpu的型号) |
|
ansible_processor_vcpus |
显示cpu个数(只显示总的个数) |
【shell】
让远程主机在shell进程下执行命令,可支持shell的特性(如管道等)。
参数与command相同,不做赘述。
示例:
|
ansible host1 -m shell -a "chdir=/testdir cat test" |
【copy】
把本地文件复制到远程主机上。
相关参数:
|
dest |
必选。远端路径,可以是文件/目录。 |
|
src |
与content其一必选。源文件/目录,如果以"/"结尾,复制内容,否则,复制包括目录在内的所有内容。 |
|
content |
与src其一必选。直接设定目的文件的值,此时dest必须是文件。 |
|
backup |
覆盖之前备份源文件。yes/no |
|
directory_mode |
递归设定目标目录的权限。 |
|
follow |
支持link文件复制 |
|
force |
覆盖远程主机不一致的内容 |
|
group |
设定远程主机目录的组名 |
|
mode |
设定远程主机文件及目录的权限 |
|
owner |
设定远程主机目录的用户名 |
示例:
|
ansible host1 -m copy -a 'src=/etc/passwd dest=/tmp mode=755 owner=root' ansible host1 -m copy -a 'content="HELLO" dest=/tmp mode=755 owner=root' |
【file】
设置文件属性
相关参数:
|
path |
必选。用于指定要操作的文件或者目录。 |
|
state |
属性。此参数需灵活使用,后面会介绍 |
|
src |
当state设置为link或者hard的时候,此参数为链接文件的源文件。 |
|
dest |
当state设置为link或者hard的时候,此参数为链接文件路径。 |
|
force |
当state为link的时候,force设置为yes,则就算文件不存在,依旧创建链接文件。 |
|
group |
同上 |
|
mode |
同上 |
|
owner |
同上 |
|
recurse |
被操作的文件为目录,将其设置为yes,可递归修改属性。 |
示例:
|
ansible host1 -m file -a "path=/test owner=test group=test mode=0644" ansible host1 -m file -a "src=/test dest=/testlink owner=root group=root state=link" ansible ansible-demo3 -m file -a "path=/test state=touch" |
state:
|
directory |
目录。不存在则创建 |
|
touch |
文件。不存在则创建 |
|
file |
文件。不存在则跳过 |
|
link |
创建软连接 |
|
hard |
创建硬链接 |
|
absent |
删除目录,文件或者取消链接 |
【cron】
计划定时执行任务
相关参数:
|
minute、hour、day、month、weekday |
计划时间,默认为* |
|
name |
必选。任务描述 |
|
job |
任务。要加引号 |
|
state |
present - 创建 |
示例:
|
ansible host1 -m cron -a " name='crontab test' minute=5 hour=1 job='echo test' " ansible host1 -m cron -a " name='crontab day test' minute=1 hour=1 day=*/3 job='echo test' |
【yum】
管理安装相关程序包
相关参数:
|
name |
程序包名称,可带版本号 |
|
state |
present、installed/present、latest(最新)、removed/absent |
|
enablerepo |
指定安装软件包时临时启用的 yum 源 |
|
disablerepo |
指定安装软件包时临时禁用的 yum 源 |
|
disable_gpg_check |
禁用对 rpm 包的公钥 gpg 验证 |
示例:
|
ansible host1 -m yum -a 'name=nginx state=installed disable_gpg_check=yes' |
【service】
管理服务
相关参数:
|
name |
服务名称 |
|
state |
started、stopped、restarted |
|
enable |
true、false |
|
runlevel |
运行级别 |
示例:
|
ansible host1 -m service -a "name=nginx state=started enabled=yes" |
【group】
管理用户组模块
相关参数:
|
name |
组名称 |
|
gid |
指定组的GID |
|
state |
present、absent |
|
system |
yes、no |
示例:
|
ansible host1 -m group -a "name=test_grp state=present" |
【user】
管理用户模块
相关参数:
|
name |
用户名 |
|
password |
为用户设置登陆密码,此密码是明文密码加密后的密码 |
|
update_password |
always -> 只有当密码不相同时才会更新密码(默认) |
|
shell |
用户的shell设定 |
|
groups |
用户组设定 |
|
home |
指定用户的家目录 |
|
state |
present/absent |
|
append |
yes -> 增量添加group no -> 全量变更group,只设置groups指定的group组(默认) |
|
remove |
配合state=absent使用,删除用户的家目录 -> remove=yes |
|
expires |
设置用户的过期时间,值是一个时间戳 |
示例:
|
ansible host1 -m user -a "name=test2 state=present groups=test2,test_grp shell=/bin/bash append=yes" |
ansible模块详解的更多相关文章
- Ansible安装部署及常用模块详解
Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> ...
- ansible中常用模块详解
ansible中常用的模块详解: file模块 ansible内置的可以查看模块用法的命令如下: [root@docker5 ~]# ansible-doc -s file - name: Sets ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- python之sys模块详解
python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...
- python中threading模块详解(一)
python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...
- python time 模块详解
Python中time模块详解 发表于2011年5月5日 12:58 a.m. 位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...
- python time模块详解
python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明 一.简介 ...
- 小白的Python之路 day5 time,datatime模块详解
一.模块的分类 可以分成三大类: 1.标准库 2.开源模块 3.自定义模块 二.标准库模块详解 1.time与datetime 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时 ...
随机推荐
- LCA 学习总结
怎么说,LCA裸题直接套板子,大家都会做,这样的题没必要看,剩下的题发先LCA只是一个工具就像是搜索一样,只是一个工具而不是一种算法,所以借助这套工具在其图论问题如最长路,数据结构等问题上再去发挥作用 ...
- UVA-1 #1. A + B Problem
给你两个数 aa 和 bb,请输出他们的和. 输入格式 一行,两个用空格隔开的整数 aa 和 bb. 输出格式 一个整数,表示 a+ba+b. 样例一 input 2 3 output 5 限制与约定 ...
- Pandas切片操作:很容易忽视的SettingWithCopyWarning
Pandas是一个强大的分析结构化数据的工具集,主要用于数据挖掘和数据分析,同时也提供数据清洗功能. 很多初学者在数据的选取,修改和切片时经常面临一些困惑.这是因为Pandas提供了太多方法可以做同样 ...
- dp (1)
D - Tree of Tree ZOJ - 3201 这个题目我开始是这么定义的dp[i][j][0] dp[i][j][1] 表示对于第i个节点还有j个的选择 0 代表不选这个节点,1 代表选这个 ...
- 【Swift】获取UILabel中点击的某个功能标签文字并作出响应动作
1.需求 首先.针对UILabel中显示的多个功能标签,作出颜色标记提示. 其次.对关键字作出点击响应动作. 如图所示: 解决: 1.使用正则匹配到关键字 public static var hash ...
- 201771010113 李婷华 《面向对象程序设计(java)》第七周学习总结
一.理论知识学习部分 1.动态绑定:又称为运行时绑定.程序在运行时会自动选择调用哪个方法. 2.静态绑定:如果方法是private.static.final修饰的,或者是构造器,那么编译器能准确地判断 ...
- python gdal 读取栅格数据
1.gdal包简介 gdal是空间数据处理的开源包,其支持超过100种栅格数据类型,涵盖所有主流GIS与RS数据格式,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff) ...
- 【Scala】代码实现Scala的各种模式匹配操作
文章目录 内容匹配 类型匹配 s表达式 case class 样例类 偏函数 内容匹配 import scala.util.Random object TestMatch { def main(arg ...
- 【Hadoop离线基础总结】关键路径转化率分析(漏斗模型)
关键路径转化 需求 在一条指定的业务流程中,各个步骤的完成人数及相对上一个步骤的百分比 模型设计 定义好业务流程中的页面标识 Step1. /item Step2. /category Step3. ...
- neo4j 图数据库安装及介绍
neo4j 图数据库安装及介绍 一.neo4j图数据库介绍 图数据库,顾名思义就是利用了"图的数据结构来作为数据存储逻辑体现的一种数据库",所以要想学好图数据库当然需要了解一些关于 ...