ansible的参数及常用模块

参数:

查看帮助手册:ansible-doc    -a

查指定模块的帮助:ansible-doc   -s   模块名

ansible-doc  -s   setup   查看setup模块的帮助信息

ansible-doc   -l

ansible-doc   -s   file

Options:

-a, --all             Show documentation for all modules  显示所有模块

-C, --check           don't make any changes; instead, try to predict some

检测并不发生改变,可以预测一些错误用于测试使用

-h, --help            show this help message and exit     显示帮助信息并退出

-l, --list            List available modules              列出所有可用模块列表

-M MODULE_PATH, --module-path=MODULE_PATH

specify path(s) to module library (default=None)

指定模块库的路径(默认值=None)

specify path(s) to module library (default=None)

-s, --snippet         Show playbook snippet for specified module(s)

显示指定模块的playbook(剧本)代码段

-v, --verbose         verbose mode (-vvv for more, -vvvv to enable

connection debugging)

详细显示(-vvv 表示更详细,-vvvv 启用连接调试)

--version             show program's version number and exit

显示程序的版本号并退出

常用模块:

1.setup: 查看远程主机的基本信息

ansible 主机列表名称  -m setup

-m  指定使用的模块

主机列表名称是卸载 /etc/ansible/hosts 文件中的主机列表名称

或者

ansible  192.168.13.12 -m  setup  查看指定ip的主机状态信息

2. ping: 测试远程主机的运行状态

ansible 主机列表名称  -m  ping   ping指定的主机列表名称中的主机

3.file: 设置文件属性

ansible  主机列表名称 -m file -a 'src=/etc/hosts  dest=/tmp/hosts state=link'

ansible  主机列表名称 -m file -a 'path=/tmp/hosts state=absent'

ansible  主机列表名称 -m file -a 'path=/tmp/test state=touch'

-a   模块参数相当于命令

测试结果:ansible  主机列表名称  -m  shell  -a 'ls  /tmp/'

选项:

force:需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no

group:定义文件/目录的属组

mode:定义文件/目录的权限

owner:定义文件/目录的属主

path:必选项,定义文件/目录的路径

recurse:递归设置文件的属性,只对目录有效,有两个选项:yes|no

src:被链接的源文件路径,只应用于state=link的情况

dest:被链接到的路径,只应用于state=link的情况

state:

directory:如果目录不存在,就创建目录

file:即使文件不存在,也不会被创建

link:创建软链接

hard:创建硬链接

touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间

absent:删除目录、文件或者取消链接文件

4. copy: 把主控端的文件复制到远程主机

例:

ansible 主机列表名称 -m copy -a "src=/etc/hosts  dest=/opt/hosts.bak  owner=tom  group=tom mode=0644"

ansible 主机列表名称 -m copy -a "src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes"

测试结果:ansible   主机列表名称  -m   shell   -a   'ls  -l   /opt'

选项:

backup:在覆盖之前,将源文件备份,备份文件包含时间信息。有两个选项:yes|no

content:用于替代“src”,可以直接设定指定文件的值

dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录

directory_mode:递归设定目录的权限,默认为系统默认权限

force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes

others:所有的file模块里的选项都可以在这里使用

src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容,如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync

5.service模块:用于管理服务

例:

ansible 主机列表名称 -m service -a "name=httpd state=started enabled=yes"

asnible 主机列表名称 -m service -a "name=foo pattern=/usr/bin/foo state=started"

ansible 主机列表名称 -m service -a "name=network state=restarted args=eth0"

选项:

arguments:给命令行提供一些选项

enabled:是否开机启动 yes|no

name:必选项,服务名称

pattern:定义一个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行

runlevel:运行级别

sleep:如果执行了restarted,在则stop和start之间沉睡几秒钟

state:对当前服务执行启动,停止、重启、重新加载等操作(started,stopped,restarted,reloaded)

6.cron模块:用于管理计划任务

示例:

ansible 主机列表名称 -m cron -a 'name="a job for reboot" special_time=reboot job="/some/job.sh"'

ansible 主机列表名称 -m cron -a 'name="yum autoupdate" weekday="2" minute=0 hour=12 user="root

ansible 主机列表名称 -m cron -a 'backup="True" name="test" minute="0" hour="5,2" job="ls -alh > /dev/null"'

ansilbe 主机列表名称 -m cron -a 'cron_file=ansible_yum-autoupdate state=absent'

验证:ansible   主机列表名称  -m   shell   -a   'crontab  -l'

选项:

backup:对远程主机上的原任务计划内容修改之前做备份

cron_file:如果指定该选项,则用该文件替换远程主机上的cron.d目录下的用户的任务计划

day:日(1-31,*,*/2,……)

hour:小时(0-23,*,*/2,……)

minute:分钟(0-59,*,*/2,……)

month:月(1-12,*,*/2,……)

weekday:周(0-7,*,……)

job:要执行的任务,依赖于state=present

name:该任务的描述

special_time:指定什么时候执行,参数:reboot,yearly,annually,monthly,weekly,daily,hourly

state:确认该任务计划是创建还是删除(absent)

user:以哪个用户的身份执行

7.yum模块:使用yum包管理器来管理软件包

例:

ansible 主机列表名称 -m yum -a 'name=httpd state=latest'

ansible 主机列表名称 -m yum -a 'name="@Development tools" state=present'

ansible 主机列表名称 -m yum -a 'name=http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm state=present'

选项:

config_file:yum的配置文件

disable_gpg_check:关闭gpg_check

disablerepo:不启用某个源

enablerepo:启用某个源

name:要进行操作的软件包的名字,也可以传递一个url或者一个本地的rpm包的路径

state:状态(present  or   installed   or   latest,absent or removed)安装使用present installed latest 删除使用absent removed

present和installed安装套件 latest 安装最新的版本

8.user模块与group模块

user模块是请求的是useradd, userdel, usermod三个指令,goup模块请求的是groupadd, groupdel, groupmod 三个指令。

(1)、user模块

home:指定用户的家目录,需要与createhome配合使用

groups:指定用户的属组

uid:指定用的uid

password:指定用户的密码

name:指定用户名

createhome:是否创建家目录 yes|no

system:是否为系统用户

remove:当state=absent时,remove=yes则表示连同家目录一起删除,等价于userdel -r

state:是创建还是删除

shell:指定用户的shell环境

expires参数:此参数用于指定用户的过期时间例如设置expires=1546185600 时,就是使用命令 date -d 2018-12-31 +%s 获取到的值

表示用户的过期时间为2018年12月31日0点0分,目前此参数只支持在 Linux 和 FreeBSD 系统中使用。

例:

ansible 主机列表名称 -m user -a 'name=johnd comment="John Doe" uid=1040 group=admin'

ansible 主机列表名称 -m user -a 'name=james shell=/bin/sh groups=adm,lp append=yes'

ansible 主机列表名称 -m user -a 'name=johnd state=absent remove=yes'

ansible 主机列表名称 -m user -a 'name=james18 shell=/bin/zsh groups=developers expires=1422403387'

(2)、group示例

ansible all -m group -a 'name=somegroup state=present'

all  表示列表里的所有主机

9. shell: shell命令

ansible默认使用的模块是command,支持多数shell命令,但不支持shell变量及管道,如果要使用需要使用shell模块

用shell模块给用户设置登录密码:

ansible all -m  shell  -a  'echo  01 | passwd  --stdin  james'

转载于:https://blog.51cto.com/14311371/2386864

ansible的参数及常用模块相关推荐

  1. Ansible基本使用及常用模块详解

    一.ansible基本使用 定义主机组 定义被管理节点列表的文件/etc/ansible/hosts,在定义被管理节点的时候,可以单独基于主机做定义,也可以将多个主机定义成一个主机组. 在上篇博文安装 ...

  2. Ansible Ad—hoc 模式常用模块

    1. ad-hoc介绍 ansible中有两种模式:ad-hoc模式和ansible-playbook模式. ad-hoc命令是一种可以快速输入的命令,而且不需要保存起来的命令. ad-hoc适合解决 ...

  3. ANSIBLE的安装和常用模块使用详细教程

    ANSIBLE安装和各种模块应用功能 文章目录 ANSIBLE安装和各种模块应用功能 安装配置ANSIBLE ANSIBLE使用 ansible-galaxy工具 ansible-pull工具 ans ...

  4. Ansible纸上谈兵02:常用模块

    背景 这里以 ad-hoc 命令的方式介绍下 Ansible 经常用到的模块. Ansible 已经具备丰富的模块生态,我们可以借助 Ansible 的模块完成日常在 Linux 操作系统上的运维工作 ...

  5. ansible自动化运维(二)——环境部署及常用模块的使用

    实验环境 主机 ip server1(主控端) 172.25.6.1 server2(节点) 172.25.6.2 server3(节点) 172.25.6.3 一.环境部署 ansible的配置文件 ...

  6. Ansible常用模块介绍及使用

    ansible常用命令解析: 查看当前 ansible 都支持哪些模块: ansible-doc -l 查看某一模块可以使用的参数:ansible-doc -s copy (eg:copy模块) an ...

  7. ansible安装部署和配置、常用模块整理

    今天心情不错~~~~第25个生日了,又遇昨晚百年难得一见的蓝月亮,所以昨晚连夜整理了文档, 会分为两部分发出去,ansible批量化部署在工作中是非常实用,建议呢 整理大量常用模块去练习 1.1.1  ...

  8. Ansible常用模块详解

    Ansible常用模块 2015年底270多个模块,2016年达到540个,2018年01月12日有1378个模块,2018年07月15日1852个模块,2019年05月25日(ansible 2.7 ...

  9. ansible笔记(5):常用模块之文件操作(二)

    ansible笔记(5):常用模块之文件操作(二)文件操作类模块find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样.此处我们介绍一些find模块的常用参数,你可 ...

最新文章

  1. aws lambda使用_如何使用AWS Lambda和S3构建无服务器URL缩短器
  2. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
  3. 读取points文件
  4. 2.4.2 死锁的处理策略-预防死锁
  5. 【干货】从零开始做运营(超详细脑图)
  6. 非对称加解密,私钥和公钥到底是谁来加密,谁来解密?
  7. boost::mp11::mp_set_difference相关用法的测试程序
  8. CRMEB开发文档及目录结构
  9. ERP failure: Error when opening an RFC connection
  10. jsp jquery ajax请求,JSP+jquery使用ajax方式调用json的实现方法
  11. Android studio报Error:(26, 13)-v7:27.错误的解决方法
  12. 转:ElasticSearch 插件安装
  13. Intel CPU命名规则
  14. 37岁,跨专业学习Java
  15. android T分屏流程
  16. 阿里修炼秘籍,如何快速成长的几个技巧?
  17. PyQt:桌面程序设计的饕餮盛宴
  18. Cmake预设变量清单
  19. Android接入讯飞sdk使用,遇到的问题和解决
  20. 据说这是北大教师孔庆东的韩国游记

热门文章

  1. C语言 goto 语句 - C语言零基础入门教程
  2. Python random 模块 - Python零基础入门教程
  3. java pingpong_面试题。线程pingpong的输出问题
  4. qq收不到oracle邮件,腾讯企业邮箱发送邮件失败
  5. 添加mysql至服务器_mysql 如何添加服务器
  6. oracle连接工具_扯一扯Tableau软件配置数据源系列之Oracle
  7. deepfakes怎么用_[mcj]deepfakesApp使用说明(1)
  8. 使用计算机画画需要什么软件,专业电脑绘画用的是什么工具?
  9. 一个长方体玻璃容器从里面量长宽_养观赏鱼用玻璃鱼缸吗?3种常见养鱼容器,另外2种养鱼效果不差...
  10. 1107: 回文数猜想(函数专题)