ansible常用模块整理

ansible 语法

1、语法

* ansible  [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

你可能感兴趣的:(ansible常用模块整理)