博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ansible模块
阅读量:5348 次
发布时间:2019-06-15

本文共 7228 字,大约阅读时间需要 24 分钟。

1、Ansible copy模块 Ansible copy模块主要用于文件或者目录拷贝,支持文件、目录、权限、用户组功能,

src                Ansible端源文件或者目录,空文件夹不拷贝;content            用来替代src,用于将指定文件的内容,拷贝到远程文件内;dest                客户端目标目录或者文件,需要绝对路径;backup            拷贝之前,先备份远程节点上的原始文件;directory_mode    用于拷贝文件夹,新建的文件会被拷贝,而老旧的不会被拷贝;follow            支持link文件拷贝;force            覆盖远程主机不一致的内容;group            设定远程主机文件夹的组名;mode            指定远程主机文件及文件及的权限;owner            设定远程主机文件夹的用户名。

1)Ansible copy模块操作,src表示源文件,dest表示目标目录或者文件,owner指定拥有者

ansible -k all -m copy  -a  'src=if.sh  dest=/tmp/  mode=755  owner=root'

2)Ansible copy模块操作,content文件内容,dest目标文件,owner指定拥有者

ansible -k all -m copy  -a  'content="Hello World"  dest=/tmp/if.sh  mode=755  owner=root'

3)Ansible copy模块操作,content文件内容,dest目标文件,owner指定拥有者,backup=yes开启备份

ansible -k all -m copy  -a  'content="Hello World"  dest=/tmp/jf.sh backup=yes mode=755  owner=root'

2、Ansible yum模块 Ansible yum模块主要用于软件的安装、升级、卸载

conf_file                        设定远程yum执行时所依赖的yum配置文件disable_gpg_check                安装软件包之前是否坚持gpg  key;name                        需要安装的软件名称,支持软件组安装;update_cache                    安装软件前更新缓存;enablerepo                    指定repo源名称;skip_broken                      跳过异常软件节点;state                            软件包状态,包括:installed、present、latest、absent、removed。

1)Ansible yum模块操作,name表示需安装的软件名称,state表示状态,常见state= installed表示安装软件

ansible  all  -k  -m  yum  -a  "name=sysstat,screen  state=installed"

2)Ansible yum模块操作,name表示需安装的软件名称,state表示状态,常见state= absent表示安装软件

ansible  all  -k  -m  yum  -a  "name=sysstat  state=absent"

3)Ansible yum模块操作,name表示需安装的软件名称,state表示状态,常见state= installed,表示安装软件,disable_gpg_check=no不检查key

ansible  192.168.0.112  -k  -m  yum  -a  "name=sysstat,screen  state=installed disable_gpg_check=no"

3、ansible file 模块

Ansible file模块主要用于对文件的创建、删除、修改、权限、属性的维护和管理

src                    Ansible端源文件或者目录;follow                支持link文件拷贝;force                覆盖远程主机不一致的内容;group                设定远程主机文件夹的组名;mode                指定远程主机文件及文件及的权限;owner                设定远程主机文件夹的用户名;path                    目标路径,也可以用dest,name代替;state                    状态包括:file、link、directory、hard、touch、absent;attributes                文件或者目录特殊属性。

1)Ansible file模块操作,path表示目录的名称和路径, state=directory表示创建目录

ansible  -k  192.168.* -m  file  -a  "path=/tmp/`date +%F`  state=directory  mode=755"

2)Ansible file模块操作,path表示目录的名称和路径, state=touch表示创建文件

ansible  -k  192.168.* -m  file  -a  "path=/tmp/`date +%F`  state=touch  mode=755"

4、Ansible user模块Ansible user模块主要用于操作系统用户、组、权限、密码等操作

system                          默认创建为普通用户,为yes则创建系统用户;append                            添加一个新的组;comment                         新增描述信息;createhome                         给用户创建家目录;force                            用于删除强制删除用户;group                            创建用户主组;groups                            将用户加入组或者附属组添加;home                            指定用户的家目录;name                            表示状态,是否create、remove、modify;password                            指定用户的密码,此处为加密密码;remove                            删除用户;shell                                设置用户的shell登录环境;uid                                设置用户id;update_password                     修改用户密码;state                               用户状态,默认为present表示新建用户

1)Ansible user模块操作,name表示用户名称,home表示其家目录

ansible  all  -m   user   -a   "name=nihao   home=/tmp/"

2)Ansible user模块操作,name表示用户名称,home表示其家目录

ansible  all  -m   user   -a   "name=nihao   home=/tmp/ shell=/sbin/nologin"

3)Ansible user模块操作,name表示用户名称,state=absent表示删除用户

ansible all -m user -a "name=nihao state=absent force=yes"

5、Ansible cron模块主要用于添加、删除、更新操作系统Crontab任务计划

name                          任务计划名称;cron_file                     替换客户端该用户的任务计划的文件;minute                        分( 0-59 ,* ,*/2 );hour                          时( 0-23 ,* ,*/2 );day                           日( 1-31 ,* ,*/2 );month                         月( 1-12 ,* ,*/2 );weekday                       周( 0-6 或 1-7 ,* );job                           任何计划执行的命令,state要等于present;backup                        是否备份之前的任务计划;user                          新建任务计划的用户;state                         指定任务计划present、absent。

1)Ansible cron模块操作,基于cron模块,创建crontab任务计划

ansible    all  -m  cron  -a  "minute=0  hour=0  day=*  month=*  weekday=* name='Ntpdate server for sync time'   job='/usr/sbin/ntpdate 139.224.227.121'"

2)Ansible cron模块操作,基于cron模块,备份crontab任务计划,backup=yes表示开启备份,备份文件存放于客户端/tmp/

ansible    all  -m  cron  -a  "minute=0  hour=0  day=*  month=*  weekday=* name='Ntpdate server for sync time'  backup=yes job='/usr/sbin/ntpdate  pool.ntp.org'"

3)Ansible cron模块操作,基于cron模块,删除crontab任务计划

ansible  -k  all  -m  cron  -a  "name='Ntpdate server for sync time'  state=absent"

6、Ansible synchronize模块主要用于目录、文件同步,基于Rsync命令同步目录,

compress                        开启压缩,默认为开启;archive                         是否采用归档模式同步,保证源和目标文件属性一致;checksum                        是否效验;dirs                            以非递归的方式传输目录;links                           同步链接文件;recursive                       是否递归yes/no;rsync_opts                      使用rsync 的参数;copy_links                      同步的时候是否复制连接;delete                          删除源中没有而目标存在的文件;src                          源目录及文件;dest                    目标目录及文件;dest_port                       目标接受的端口;rsync_path                      服务的路径,指定 rsync 命令来在远程服务器上运行;rsync_timeout                   指定rsync操作的IP超时时间;set_remote_user                 设置远程用户名;--exclude=.log                  忽略同步.log结尾的文件;mode                        同步的模式,rsync同步的方式PUSH、PULL,默认都是推送push。

1)Ansible synchronize模块操作,src源目录、dest目标目录

ansible  -k  all -m synchronize  -a 'src=/tmp/ dest=/tmp/'

2)Ansible synchronize模块操作,src源目录、dest目标目录、compress=yes开启压缩、delete=yes数据一致、rsync_opts同步参数、--exclude排除文件

ansible  -k  all  -m synchronize  -a 'src=/tmp/ dest=/tmp/ compress=yes delete=yes rsync_opts=--no-motd,--exclude=.txt'

7、nsible shell模块主要用于远程客户端上执行各种Shell命令或者运行脚本,远程执行命令通过/bin/sh环境来执行,支持比command更多的指令

Chdir                    执行命令前,切换到目录;Creates                    当该文件存在时,则不执行该步骤;Executable                换用shell环境执行命令;Free_form                需要执行的脚本;Removes                    当该文件不存在时,则不执行该步骤;Warn                    如果在ansible.cfg中存在告警,如果设定了False,不会警告此行。

1)Ansible shell模块操作,-m shell指定模块为shell,远程执行Shell脚本,远程执行脚本也可采用script模块。并把执行结果追加至客户端服务器/tmp/var.log文件

ansible -k all -m shell -a "/bin/sh /tmp/if.sh >>/tmp/var.log"

2)Ansible shell模块操作,远程执行创建目录命令,执行之前切换在/tmp目录,屏蔽警告信息

ansible -k all -m shell -a "mkdir -p `date +%F` chdir=/tmp/ state=directory warn=no"

3)Ansible shell模块操作,-m shell指定模块为shell,远程客户端查看http进程是否启动

ansible all -m shell -a "ps -ef|grep httpd "

4)Ansible shell模块操作,-m shell指定模块为shell,远程客户端查看crontab任务计划

ansible all -m  shell -a "crontab -l "

8、Ansible service模块主要用于远程客户端各种服务管理,包括启动、停止、重启、重新加载等

enabled                是否开启启动服务;name                服务名称;runlevel                服务启动级别;arguments            服务命令行参数传递;state                    服务操作状态,状态包括started, stopped, restarted, reloaded

1)Ansible service模块操作,远程重启httpd服务

ansible -k all  -m  service  -a  "name=httpd  state=restarted"

2)Ansible service模块操作,远程重启网卡服务,指定参数ens33

ansible  -k   all  -m  service  -a  "name=network   args=ens33  state=restarted"

3)Ansible service模块操作,远程开机启动nfs服务

ansible -k all  -m  service  -a  "name=nfs  enabled=yes  runlevel=3,5"

 

转载于:https://www.cnblogs.com/legenidongma/p/10756205.html

你可能感兴趣的文章
如何在工作中快速成长?阿里资深架构师给工程师的10个简单技巧
查看>>
WebSocket 时时双向数据,前后端(聊天室)
查看>>
关于python中带下划线的变量和函数 的意义
查看>>
linux清空日志文件内容 (转)
查看>>
安卓第十三天笔记-服务(Service)
查看>>
Servlet接收JSP参数乱码问题解决办法
查看>>
Ajax : load()
查看>>
MySQL-EXPLAIN执行计划Extra解释
查看>>
Zookeeper概述
查看>>
Zookeeper一致性级别
查看>>
Linux远程登录
查看>>
Linux自己安装redis扩展
查看>>
HDU 1016 Prime Ring Problem(dfs)
查看>>
C#中结构体与字节流互相转换
查看>>
session和xsrf
查看>>
Linux目录结构
查看>>
luoguP3414 SAC#1 - 组合数
查看>>
五一 DAY 4
查看>>
(转)接口测试用例设计(详细干货)
查看>>
【译】SSH隧道:本地和远程端口转发
查看>>