• ansible模块的介绍与使用


    ansible-doc的使用

      1.ansible-doc -h可以看见ansible-doc的所有参数

      2.ansible-doc 命令格式:ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin]

        2.1 -j #以json的方式返回数据

        2.2 -l, --list #列出所有的模块

        2.3 -s, --snippet #以片段式显示模块信息

      3.ansible-doc -s 模块名字    以片段的形式查询模块的信息,如ansible-doc -s shell

      4.ansible-doc 模块名  查询模块的全部信息,如ansible-doc shell

      5.ansible-doc -l|wc -l  这个命令可以统计出一共有多少个模块

    1.command模块

      1.1 ansible-doc -s command  查询command的参数

      1.2chdir 切换目录并执行命令

      1.3creates 目录存在,不执行随后的命令

      1.4removes 目录存在,执行随后的命令

      1.5 command命令一般在编译软件的时候会用到,因为要切换到软件的当前目录下在执行软件

    ansible web -m command -a "pwd"
    ansible web -m command -a "ls"
    ansible web -m command -a "chdir=/tmp pwd" #切换目录并执行命令
    ansible web -m command -a "creates=/tmp pwd" #因为tmp目录存在,pwd不会执行
    ansible web -m command -a "creates=/tmp2 pwd" #因为tmp2不存在,pwd执行
    ansible web -m command -a "removes=/tmp2 pwd" #因为tmp2不存在pwd不执行
    ansible web -m command -a "removes=/tmp pwd" #因为tmp目录存在,pwd会执行
    #web是一个组的名称,相当于一个IP地址,如192.168.8.128
    #-m 后面加模块的名字 -a后面加指定的参数
    #pwd 获取当前的工作目录的命令
    • echo "密码" |passwd --stdin 用户名      #设置用户的密码
    ansible 192.168.8.128 -m shell -a "echo '密码'|password --stdin 用户名"

    2.shell模块

      2.1 ansible-doc -s shell查询shell的参数 

      2.2chdir 切换目录并执行命令

      2.3creates 目录存在,不执行随后的命令

      2.4removes 目录存在,执行随后的命令

    ansible web -m shell -a "echo '1234' |passwd --stdin al“ 更改用户的密码
    ansible web -m shell -a "chdir=/tmp pwd" shabang
    ansible 192.168.226.101 -m shell -a "bash a.sh" #执行shell脚本
    ansible 192.168.226.101 -m shell -a "/root/a.sh" # 执行shell脚本,文件要有执行的权限
    ansible 192.168.226.101 -m shell -a "/root/a.py" #执行Python文件
    #web是一个组的名称,相当于一个IP地址,如192.168.8.128
    #bash是一个解释器

    3.script模块

      3.1 ansible-doc -s script查询script的参数

      3.2chdir 切换目录并执行命令

      3.3creates 目录存在,不执行随后的命令

      3.4removes 目录存在,执行随后的命令

    ansible db -m script -a "/root/a.sh" #执行本地的文件,管控机的文件
    ansible db -m script -a "creates=/root/a.sh /root/a.sh" # 判断被控机上的文件是否存在,如果不存在,就执行,如果存在,就跳过
    ansible db -m script -a "creates=/tmp /root/a.sh" #判断被控机上的文件
    #db是一个组的名称,相当于一个IP地址,如192.168.8.128

    4.copy模块

       4.1 ansible-doc -s copy 查询copy的参数

         4.2 backup  创建一个备份文件,以时间戳结尾(管控机和被控机都有备份文件)

         4.3 content  直接往文件里面写内容

           4.4 dest  目标文件地址

      4.5 group  文件属组

      4.6 mode  文件的权限 (W--2  R--4  X--1)

      4.7 owner  文件属主

      4.8 src  源文件地址

    ansible web -m copy -a "src=/etc/fstab dest=/tmp/f" #复制本地文件到远程主机,并修改文件名,多次执行不会改变,因为checksum值是一样的
    ansible web -m copy -a "src=a.sh dest=/tmp/a.sh backup=yes" #复制本地文件到远程主机,并备份
    ansible web
    -m copy -a "src=a.sh dest=/tmp/a.sh backup=yes group=alex mode=755"# 复制本地文件到远程主机,并指定属组和权限
    ansible web
    -m copy -a "src=/etc/init.d dest=/tmp backup=yes group=alex mode=755" #复制本地的目录到远程主机,修改目录权限,则目录里面的文件也会跟着变更
    ansible web
    -m copy -a "src=/etc/init.d/ dest=/tmp backup=yes group=alex mode=755" #复制本地目录下的所有文件,
    ansible web
    -m copy -a "content='大弦嘈嘈如急雨,小弦切切如私语,嘈嘈切切错 杂弹,大珠小珠落玉盘' dest=/tmp/b" #直接往文件里面写内容,覆盖写,慎用
    #web是一个组的名称,相当于一个IP地址,如192.168.8.128
    #-m 后面加模块的名字 -a后面加指定的参数
    #a.sh是一个文件

    5.file模块

    6.fetch模块

    7.yum模块

    8.pip模块

    9.service模块

    10.cron模块

    11.user模块

    12.group模块

    13.setup模块

      13.1 ansible 192.168.8.128 -m setup 查看被控机的setup信息 192.168.8.128为被控机的IP地址

        如果要查询本机的setup信息的话,IP地址应该使用127.0.0.1或者localhost

      13.2 

    14.ping模块

    15.replace模块

  • 相关阅读:
    《SQL 基础教程》第五章:复杂查询
    Ruby on Rails Tutorial 第一章笔记
    《Practical Vim》第十章:复制和粘贴
    《Practical Vim》第五章:命令行模式
    《SQL 基础教程》第四章:数据更新
    用户的三次登录验证及进度条
    socket模块开启一个永久性服务
    TCP协议实现切换目录
    爬取好友微信信息
    TCP协议中传输系统命令及上传下载文件
  • 原文地址:https://www.cnblogs.com/l1222514/p/10826560.html
Copyright © 2020-2023  润新知