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

Posted 运维技术圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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模块

    例如:
      创建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"
    • 常用参数:

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

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

      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模块

    管理被控机的计划任务。

    例如:
     给普通用户设置计划任务:
       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"
    • 参数:

      minute: 设定分钟。

      hours: 设定小时。

      day: 设定天数

      month: 设定月

      weekday: 设定周几

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

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

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

      name: 设置计划任务名称。

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

  • service模块

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

    例如:
    启动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"
    • 参数:

      name: 服务名称

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

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

  • 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"


以上是关于ansible系列第二篇(模块使用)的主要内容,如果未能解决你的问题,请参考以下文章

ansible-ad-hoc第二篇

第二篇: Ansible 安装

Spring cloud系列教程第二篇:支付项目父工程图文搭建

Spring cloud系列教程第二篇:支付项目父工程图文搭建

第二十二篇 正在表达式 re模块

分布式事务系列第二篇,回顾 Jdbc 事务