ansible系列第二篇(模块使用)

ansible系列第二篇(模块使用)

  • 模块使用

    • 设置ansible提权

    在hosts文件加入sudo提权的密码:

    18.18.23.102  ansible_become_pass=‘passwd‘

    执行: ansible test -S -R root -m shell -a "ls -l /"

    • 查看ansible有那些模块:

    ansible-doc -l

    • 获取各个模块详细帮助信息

      ansible-doc -s ping

    • ping模块:

    ansible test -m ping

    • 从受控主机拉取文件:

    调用模块并传入模块所需要的参数

    ansible test -m fetch -a "src=/etc/passwd dest=/automation/matchine"

    ansible会自动在管控端创建各个主机对应的目录。

  • 文件操作模块

    查看模块的帮助方式: ansible-doc -s modulename

    • copy模块
    • 常用参数

      src参数: copy文件或目录。

      dest参数: 指定文件被拷贝到远程主机的哪个目录中。

      content参数: 使用content直接指定文件内容。

      force参数: 默认值yes,覆盖。为no时,不执行覆盖操作。

      backup参数: yes,先备份,再拷贝文件到远程主机。

      mode参数: 文件权限。

      owner参数: 文件属主。

      group参数: 文件属组。

    • file模块
    • 常用参数:

      path参数: 指定文件或目录。

      state参数: absent,删除文件或目录。touch文件,link创建软链接文件。

      recurse参数: yes时可递归修改目录中文件的属性。

    例如:
      创建test.txt文件:
       ansible test -m file -a "path=/home/yuan/test.txt state=touch"
       ansible test -S -R root -m file -a "path=/opt/abc.txt state=touch"
      删除test.txt文件:
       ansible test -m file -a "path=/home/yuan/test.txt state=absent"
       ansible test -S -R root -m file -a "path=/opt/abc.txt state=absent"
      创建目录hello:
       ansible test -m file -a "path=/home/yuan/hello state=directory" 
    
      创建软链接文件:
      软链接名为go,
      ansible test -m file "path=/home/yuan/bin/linkfile state=link src=/home/yuan/services/go/bin/gofile"
    
      递归创建目录并递归修改属主和属组:
       ansible test -S -R root -m file -a "path=/abc/test/aaa state=directory owner=yuan group=yuan recurse=yes"
    • blockinfile模块

    在指定文件插入文本.

    • 常用参数:

      path:文件路径

      block: 指定文本

      state: 执行插入,更新,删除操作。

      backup: 是否在修改文件之前对文件进行备份。

      create: 文件不存在,是否创建文件。

    • lineinfile模块

    查看一行文本是否存在于指定文件中或从文件中删除指定文本。

    • find模块:

    在被控机查找符合条件的文件。

    • 常用参数:

      paths: 在哪个目录查找。

      recurse: 递归查找。

      hidden: yes时可查找隐藏文件。

      file_type: 指定文件类型。

      patterns:通配符或正则表达式匹配文件。

      contains: 根据文章内容查找文件。

      age: 根据时间范围查找文件。

      size: 根据文件大小查找文件。

    • replace模块:

    根据指定的正则表达式替换文件中的字符串。

  • 命令行模块:
    • command模块:

    在被控机上执行命令。

    • 参数:

      free_form:指定远程执行命令

      chdir: 指定一个目录。

      creates: 指定文件存在就不执行。

      removes: 指定文件不存在,就不执行对应命令。

    • shell模块

    在被控机执行命令时,会经过被控机的/bin/sh程序处理。

    • script模块

    在被控机上执行管控机上的脚本。

    参数和command模块类似。

    例如: $ ansible test -m script -a "/home/yuan/abc.sh"

  • 系统类模块
    • cron模块

    管理被控机的计划任务。

    • 参数:

      minute: 设定分钟。

      hours: 设定小时。

      day: 设定天数

      month: 设定月

      weekday: 设定周几

      special_time: @开头的时间设定格式使用该参数设置。可用值:reboot,yearly或annually(每年),monthly(每月),weekly(每周),daily(每天),hourly(每小时).

      user: 设置计划任务属于哪个用户。

      job: 指定任务中需要执行的命令或脚本。

      name: 设置计划任务名称。

      state: 根据任务名称修改或删除任务。

    例如:
      给普通用户设置计划任务:
       ansible test -m cron -a "name=‘echo‘ minute=1 hour=* job=‘echo xiao3 >> /home/yuan/abc.txt‘"
      配置重启时执行该计划任务:
       ansible test -S -R root -m cron -a "name=‘reboot‘ special_time=reboot job=‘echo reboot xiao3 >> /home/yuan/abc.txt‘"
      删除计划任务:
       ansible test -S -R root -m cron -a "name=‘reboot‘ state=absent"
    • service模块

    管理被控机的服务。service模块和systemd模块类似。

    • 参数:

      name: 服务名称

      state: 指定服务的状态。started,stopped,restarted,reloaded.

      enabled: 指定是否将服务设置为开机自启。

      例如:
      启动mysql服务:
      ansible test -S -R root -m systemd -a "name=mysql state=started
      设置开机自启:
      ansible test -S -R root -m systemd -a "name=mysql enabled=yes"
    • user模块:
      管理被控机的用户。
    • group模块:
      管理被控机的组。
  • 包管理模块:
    • yum_repository模块
      管理被控机为centos系列的yum仓库。
    • yum模块:
      在被控机为centos系列通过yum源管理软件包。
    • apt模块:
      在被控机为debian系列通过apt源管理软件包
      例如:
      安装tree命令:
      ansible test -S -R root -m apt -a "name=tree state=latest update_cache=yes"

      微信公众号:

    欢迎各位大佬投稿和关注,非常感谢,如对文章内容有什么意见,也可以多多指出。

原文地址:http://blog.51cto.com/liyuanjie/2327329

时间: 12-07

ansible系列第二篇(模块使用)的相关文章

Android Metro风格的Launcher开发系列第二篇

前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如何配置Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲! Launcher主体框架实现: Launcher主体框架我选用的是大家所熟悉的ViewPager控件,因为ViewPager

chromium浏览器开发系列第二篇:如何编译最新chromium源码

说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了.所以请大家包涵! 上期回顾: chromium源码下载: 1.找个靠谱的vpn(我试过了,网上说的不用vpn拿代码的都不靠谱): 2.获取depot_tools,解压,设置环境变量; 3.gclient获取python和git,svn,设置环境变量: 4.fetch–nohooks chromium –nosvn=true 获取源码: 5.gclientsyn

chromium浏览器开发系列第二篇:如何编译最新chromium

说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了.所以请大家包涵! 上期回顾: chromium源码下载: 1.找个靠谱的vpn(我试过了,网上说的不用vpn拿代码的都不靠谱): 2.获取depot_tools,解压,设置环境变量; 3.gclient获取python和git,svn,设置环境变量: 4.fetch–nohooks chromium –nosvn=true 获取源码: 5.gclientsyn

【转载】Android Metro风格的Launcher开发系列第二篇

前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如何配置Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲! Launcher主体框架实现: Launcher主体框架我选用的是大家所熟悉的ViewPager控件,因为ViewPager

chromium浏览器高级开发系列第二篇:如何编译最新chromium源码

说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了.所以请大家包涵! 上期回顾: chromium源码下载: 找个靠谱的vpn(我试过了,网上说的不用vpn拿代码的都不靠谱): 获取depot_tools,解压,设置环境变量; gclient获取python和git,svn,设置环境变量: fetch–nohooks chromium –nosvn=true 获取源码: gclientsync --force

WebApi学习总结系列第二篇(webapi的调试)

目前使用webapi的调试主要有 1.用接口宿主调试.(宿主形式多样:web.winform.还有就是直接用app进行接口调试) 2.用Fiddler抓Http信息,进行调试. 1.用接口宿主调试. 在<ASP.NET Web API 2 框架揭秘>一书第一章就提到宿主的概念,宿主可以是web页面.winform等形式. 通过这些宿主,我们在后台设置断点对webapi进行调试.在mvc中创建的webapi宿主默认是web. 我们也可以直接用app,通过连接本地,设置断点.这个需要将webapi

【Windows编程】系列第二篇:Windows SDK创建基本控件

在Win32 SDK环境下,怎么来创建常用的那些基本控件呢?我们知道如果用MFC,简单的拖放即可完成大多数控件的创建,但是我们既然是用Windows SDK API编程,当然是从根上解决这个问题,实际上MFC的下层也是通过这些API完成的. 实际上控件也是窗口,只不过是被微软预先创建好的一种窗口类,比如button就是一个类名为“BUTTON”的类.既然控件实际上是窗口,当然也是用CreateWindow或者CreateWindowEx这个函数来完成的,第二个函数除了多一个扩展风格之外,其他完全

OpenGL学习系列第二篇

在这个教程里,我们一起来玩第一个OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架. 在CodeBlock里创建一个新的GLUT Win32程序(不是console控制台程序)后,我们还需要链接OpenGL库文件. 代码的前4行包括了我们使用的每个库文件的头文件.如下所示: #include <windows.h>// Windows的头文件 #include <glew.h>       // 包含最新的gl.

MongoDB基础教程系列--第二篇 MongoDB基本操作(一)

1.安装环境 在官网上下载MongoDB的最新版本,根据自身Windows版本下载正确的MongoDB版本.下载后,双击32位或者64位.msi文件,按操作提示安装就可以了. 说明: 32 位版本的 MongoDB 只支持 2G 以下的数据库,只适用于测试及评估. 在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统.最新版本也已经没有了 32 位系统的安装文件. 创建数据目录 安装完MongoDB以后,我们需要创建数据目录.注意,数据目录应该放在根目录下(如: C:\ 或

javascript动画系列第二篇——磁性吸附

× 目录 [1]范围限定 [2]拖拽范围 [3]磁性吸附 前面的话 上一篇,我们介绍了元素拖拽的实现.但在实际应用中,常常需要为拖拽的元素限定范围.而通过限定范围,再增加一些辅助的措施,就可以实现磁性吸附的效果 范围限定 如果我们限定元素只可以在可视范围内移动,那么就需要对其进行范围限定 首先,先要搞清楚是可视区域限定被拖拽元素 左侧范围L0 = 0 右侧范围R0 = document.documentElement.clientWidth 上侧范围T0 = 0 下侧范围B0 = documen