ansible常用模块整理

ansible 语法

1、语法

* ansible <host-pattern> [options][-m module_name] [-a args] 
* options
-b 以root权限执行
-v  -vv -vvv

2、常用模块

command模块

# command 命令模块用于在远程主机执行命令,不能使用变量,管道等

cron模块

# cron模块,定时任务
#模块选项
 month:指定月份
 minute: 指定分钟
 job: 指定任务
 day: 指定哪一天
 hour: 指定小时
 weekday:表示周几
 state: 表示是添加还是删除,present:添加,absent:移除
 
# 示例
 ansible test -m cron -a 'minute="*/10" job="/bin/echo hello"'

user模块

# user模块: 用户账号管理
# 模块选项
  name:用户名
  uid:指定uid
  state:指定状态
  group:指定组名
  groups:指定附加组
  home:指定家目录
  createhome:是否创建家目录yes or no
  comment:注释信息
  system:是否是系统用户yes or no
  
#示例
 ansible test -m user -a 'name="user1"'

group 模块

# group 组管理
# 模块选项
  gid gid
  name:组名
  state:状态
  system:是都是系统组yes or no

# 示例
  ansible test -m group -a 'name=mysql gid=306 system=yes'
  

copy模块

# copy 文件复制(复制本地文件到远程主机的指定位置)
# 模块选项
 src:指定本地源文件路径
 dest:指定远程目录文件路径
 owner:属组
 group:属组
 mode:权限
 content:取代src=,标识直接用此处的信息生成文件内容
 
# 示例
 ansible all -m copy -a 'src=/etc/fstab dest=/tmp/fstab owner=root mode=0640'

file模块

# file 设置文件的属性
# 模块选项
 force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no 
 group:定义文件/目录的属组
 mode:定义文件/目录的权限
 owner:定义文件/目录的属主
 path:必选项,定义文件/目录的路径
 recurse:递归的设置文件的属性,只对目录有效
 src:要被链接的源文件的路径,只应用于state=link的情况,存在的文件
 dest:被链接到的路径,只应用于state=link的情况
 state:  directory:如果目录不存在,创建目录 file:即使文件不存在,也不会被创建 link:创建软链接 hard:创建硬链接 touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间 absent:删除目录、文件或者取消链接文件
 

service模块

# service 管理服务运行状态
# 模块选项
 enabled:是否开机自动启动
 name:指定服务名
 state:指定服务状态
    started:启动服务
    stoped:停止服务
    restarted:重启服务
 arguments:服务参数
 
#示例
 ansible test -m service -a 'enabled=true name=httpd state=started'
 

shell模块

# shell 在远程主机上运行命令,尤其是用到管道变量等功能的负载命令

script模块

# script 将本地脚本复制到远程主机并运行
# 示例
 ansible all -m script -a '/data/test.sh'

yum模块

# yum 安装程序包
# 模块选项
 name:程序包名称(不指定版本默认安装最新版本)
 state: 状态 present,latest 表示安装,absent表示卸载

# 示例
 ansible all -m yum -a 'name=ntpdate state=absent'

setup模块

# setup 收集远程主机的facts
 每个被管理节点在接受并运行管理命令之前,会将自己主机相关信息,如操作系统版本,ip地址。
# 模块选线
 --tree 将所有主机的输出信息保存到/tmp目录下,以/ect/ansible/hosts里的主机名为文件名
 filter 过滤关键字:
  ansible db -m setup -a 'filter=ansible_distribution_version'
具体有哪些关键字可 https://www.cnblogs.com/happy-king/p/9013312.html 

synchronize模块

# synchronize模块:使用rsync同步文件
# 模块选项
    archive: 归档,相当于同时开启recursive(递归)、links、perms、times、owner、group、-D选项都为yes ,默认该项为开启
    checksum: 跳过检测sum值,默认关闭
    compress:是否开启压缩
    copy_links:复制链接文件,默认为no ,注意后面还有一个links参数
    delete: 删除不存在的文件,默认no
    dest:目录路径
    dest_port:默认目录主机上的端口 ,默认是22,走的ssh协议
    dirs:传速目录不进行递归,默认为no,即进行目录递归
    rsync_opts:rsync参数部分
    set_remote_user:主要用于/etc/ansible/hosts中定义或默认使用的用户与rsync使用的用户不同的情况
    mode: push或pull 模块,push模的话,一般用于从本机向远程主机上传文件,pull 模式用于从远程主机上取文件

mount模块

# mount模块:磁盘挂载
# 模块选项
 dump fstype:必选项,挂载文件的类型 
 name:必选项,挂载点 
 opts:传递给mount命令的参数
 src:必选项,要挂载的文件 
 state:必选项 present:只处理fstab中的配置  absent:删除挂载点  mounted:自动创建挂载点并挂载之 umounted:卸载

# 示例
  ansible test -m mount 'name=/mnt src=/dev/loop0 fstype=ext4 state=mounted opts=rw'

get_url模块

# get_url:用于将文件或软件从http、https或ftp下载到本地节点上
# 模块选项
 dest: 指定将文件下载的绝对路径---必须
 url: 文件的下载地址(网址)---必须
 url_username: 用于http基本认证的用户名
 url_password: 用于http基本认证的密码
 validate_certs: 如果否,SSL证书将不会验证。这只应在使用自签名证书的个人控制站点上使用
 owner: 指定属主
 group: 指定属组
 mode: 指定权限

# 示例
 ansible test -m get_url -a "url=http://nginx.org/download/nginx-1.16.1.tar.gz dest=/tmp/"

unarchive模块

# unarchive模块:将压缩包解压传送
 1、将ansible主机上的压缩包在本地解压缩后传到远程主机上,这种情况下,copy=yes.本地解压缩,解压缩位置不是默认的目录,没找到或传完删了后传到远程主机
 2、将远程主机上的某个压缩包解压缩到指定路径下。这种情况下,需要设置copy=no远程主机上面的操作,不涉及ansible服务端
# 模块选项
 copy:默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,如果设置为copy=no,那么会在远程主机上寻找src源文件
 src:源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no
 dest:远程主机上的目标路径
 mode:设置解压缩后的文件权限

git模块

# git 在远程服务器上执行git相关操作。依赖于git命令,需要在远程主机上先进性安装。
# 模块选项
 repo:远程git库的地址,可以是一个git协议,ssh协议或者http协议的git库地址
 dest:必选参数,git库clone到本地服务器以后保存的绝对路径
 version:克隆远程git库的版本,取值可以为HEAD,分支名称,tag的名称,也可以是一个commit的hash值
 foces:默认为no,当该选项为yes时,如果本地git库有修改,将会抛弃本地的修改(强制覆盖)
 accept_hostkey: 当该选项取值为yes时,如果git库服务器不再know_hosts中,则添加到know_hosts中,key_file指定克隆远程git库地址时使用的私钥。

其他模块

https://docs.ansible.com/ansible/latest/modules/https://docs.ansible.com/ansible/latest/modules/modules_by_category.html
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容