zoukankan      html  css  js  c++  java
  • ansible常用模块实例

    Command模块:

    Command:在远程主机执行命令,默认模块可忽略-m。

    Command:模块不支持变量,管道符,&,$,echo  >等需要使用shell模块。

    ansible all -m command -a 'systemctl restart network'

    重启主机清单的所有主机的网络(以上是完整的写法)。

    可以省略-m,因为它时默认的模块。

    ansible all  -a 'systemctl restart network'

    ansible web -a 'ls -l /tmp' (查看web组tmp目录下面有哪些文件)

    ansible all -a 'mkdir -p /data' (所有主机创建/data目录)

    ansible all -a 'df -hT' (查看所有主机的磁盘使用率)

    查看命令的帮助:ansible-doc command 详细参数

    ansible all -a 'removes=/data/test.txt rm -rf /data/test.txt'

    removes:如果这个文件不存在则不执行,文件存在则执行

    ansible all -a 'ls -l /data/'  (首先查看目录为空)

    Ansible all -a 'creates=/data/aa.txt touch /data/aa.txt'

    creates:如果存在反而不执行,如果不存在反而执行

    ansible all -a 'chdir=/data  ls -l'

    chdir:切换至某个文件夹下

    shell模块:

    shell和command相似,用于执行shell命令。

    Shell不是默认的模块所以要加-m

    ansible all -m shell -a 'echo $HOSTNAME'

    使用shell模块输出所有主机的名字。

    ansible all -a 'useradd test1'   (所有的主机创建一个test1的用户)

    ansible all -m shell -a 'cat /etc/passwd | grep test1'

    使用管道符查看是否创建成功。

    nsible all -m shell -a 'echo 123.com!|passwd --stdin test1'

    为所有主机的test1用户生成密码口令。

    删除某个文件但是后缀时日期的有很多需要*号匹配

    ansible all -m shell -a 'rm -rf  /tmp/aa.txt.*'

    Script:运行脚本模块(ansible-doc script:帮助)

    只需要在ansible端将脚本编写好,就可以在所有的主机上面执行。

    例子:在/tmp目录下面写一个简单的脚本。

    ansible all -m script -a '/tmp/hostname.sh'

    Copy模块:

    将ansible端/tmp目录下的hostname.sh复制到所有主机的/tmp目录下面。

    ansible all -m copy -a 'src=/tmp/hostname.sh dest=/tmp/hostname.sh'

    src:源路径

    dest:目标路径

    ansible all -a 'ls -l /tmp' (查看是否都已经复制到所有主机的/tmp目录下面)

    将ansible端的aa.txt拷贝到所有的主机,如果其他主机存在aa.txt文件,执行这条命令后将会备份原有的,将新的这个aa.txt拷贝到指定的路径下。

    ansible all -m copy -a 'src=/tmp/aa.txt dest=/tmp/aa.txt backup=yes'

    ansible all -a 'ls -l /tmp/'  (查看是否备份及复制)

    删除备份的文件

    ansible all -m shell -a 'rm -rf  /tmp/aa.txt.*'
    将文件拷贝到所有的主机,并设置权限及所有者。

    ansible all -m copy -a 'src=/tmp/hostname.sh dest=/tmp/hostname.sh mode=000 owner=test1'

    有原始文件的话还是要加上backup=yes,做一个备份。

    查看权限

    Content:输出内容到文件

    ansible all -m copy -a 'content="welcome to beijing" dest=/tmp/welcome.txt'

    查看是否输出到目标主机的welcome.txt文件

    Fetch:从客户端(ansible-client)取文件至服务器端(ansible-server),copy相反,目录文件可以先tar,因为只支持单个文件不支持目录拉取。

    将远程所有主机的messages日志拉取到ansible端的目录

    ansible all -m fetch -a 'src=/var/log/messages dest=/data/'

    src=ansible-client (客户端文件)

    dest=ansible-server(ansible服务端)

    file:设置文件属性,包括删除创建。

    State=touch(创建文件)

          Directory(创建目录)

          Link(创建软连接文件)

    Absent(删除)

    在远程主机的/backup目录创建一个文件。

    ansible all -m file -a 'path=/backup/aa.txt state=touch'

    删除远程主机的文件。

    ansible all -m file -a 'path=/backup/aa.txt state=absent'

    创建文件夹,(删除文件夹及文件建议使用shell模块)

    ansible all -m file -a 'path=/backup/dir1 state=directory'

    创建一个软连接文件(将/etc/fstab软连接到/backup目录下)

    ansible all -m file -a 'src=/etc/fstab dest=/backup/fstab state=link'

    删除软连接

    ansible all -m file -a 'dest=/backup/fstab state=absent'

    创建一个文件设置属主为test1,及文件的权限644。

    ansible all -m file -a 'path=/backup/test.txt state=touch mode=644 owner=test1'

    Cron:计划任务

    支持时间:minute(钟),hour(时),day(天),month(月),weekday(星期)

    制作一个简单的备份脚本测试

    Vi logbak.sh  (在ansible端制作一个备份的脚本)

    然后复制到所有主机清单的opt目录下并加执行权限

    ansible all -m copy -a 'src=/data/logbak.sh dest=/opt/logbak.sh mode=+x'

    然后我们制作一个每分钟都执行的脚本。

    ansible all -m cron -a 'minute=*/1 job=/opt/logbak.sh name=allbak'

    minute:分钟 设置的每一分钟执行一个为了看效果,实际的操作跟你设置crontab是一样的,根据你公司要求设置备份的时间。

    Job:设置执行脚本的路径

    Name:设置脚本名字

    我们查看清单主机的计划任务看是否设置完成。

    查看主机清单主机备份目录已经有备份。

    禁用计划任务。

    Disabled=yes(禁用任务,也就是注释掉任务)

                    No(开启任务,也就是取消注释)

    ansible all -m cron -a 'disabled=yes job=/opt/logbak.sh name=allbak'

    删除备份日志计划任务,彻底不使用计划任务(state=absent)删除命令有些是类似的。

    ansible all -m cron -a 'job=/opt/logbak.sh name=allbak state=absent'

  • 相关阅读:
    2013dgtcs 成绩排序
    JZOJ 1286. 太空电梯
    java单例模式Singleton
    设计模式的类型
    java工厂模式Factory
    Mysql SQL优化
    maven deploy命令打包到私服
    debian/linux 配置maven
    Java RC4加密解密工具
    JedisUtils
  • 原文地址:https://www.cnblogs.com/sxshaolong/p/12293017.html
Copyright © 2011-2022 走看看