Ansible-doc里面的一些简单模块使用

摘要:
Ansible doc l | grep模块名称//模块搜索Ansible文档模块名称======================˃/EXEMPLE//查看帮助。对于普通用户,请在命令行上执行ansible命令:ansible host or host collection-m module-u normal user-a“remote command'-become=true,例如:ansibl 10.10.31.100-mapt-a'name=“safe rm”state=present'-becom

ansible-doc  -l |grep 模块名                  //模块搜索

ansible-doc  模块名  =============>    /EXAMPLE      //查看帮助

针对于普通用户在命令行执行ansible命令:

       ansible 主机或主机集合   -m    模块  -u  普通用户  -a    '远程命令'    -become=true

eg:

ansible 10.10.31.100 -m apt -a 'name="safe-rm" state=present' -become=true 

在ansible.cfg配置文件的同级目录下执行

1.command模块:    远程执行命令,并返回结果到ansible主机

ansible 主机或主机集合   -m(模块) command -a(命令) '远程命令'

“<” ,“>”, “|”(管道), “;", “&”,“ $” 都只能在shell模块中执行,该模块不支持|管道命令

  • chdir:切换目录

ansible 主机 -m command -a 'chdir=/opt/test ls'                   //切换目录执行命令

  • creates:当文件存在则不执行命令,可用于判断,不会真的创建

ansible 主机 -m command -a 'creates=/opt/test ls'                //目录存在则不执行命令

  • removes:当文件不存在则不执行命令,可用于判断,不会真的删除

ansible 主机 -m command -a 'removes=/opt/test ls'       //目录如果不存在,则不执行命令

 Ansible-doc里面的一些简单模块使用第1张

2.shell模块:同于command模块 ,但shell模块是通过调用远程主机的shell解释器执行命令的,可以执行shell的各种功能命令

eg:

ansible webs -m shell -a 'echo ${HOSTNAME}'                 //取消本地的结果输出,直接在ansible远程主机上执行echo ${HOSTNAME}

ansible webs -m shell -a "echo ${HOSTNAME}"                 //在本机事先执行echo ${HOSTNAME},再输出到远程的ansible被管理主机上

Ansible-doc里面的一些简单模块使用第2张

3.yum模块

ansible 主机或主机集合   -m yum -a 'name=软件包名  state=状态'

                                                                                             installed emoved

Ansible-doc里面的一些简单模块使用第3张

4.service模块

ansible 主机或主机集合  -m service -a 'name=服务名     enabled=yes o     state=状态’

                                                                                           开机是否自启         state: started    stopped   restarted   reloaded

Ansible-doc里面的一些简单模块使用第4张

5.copy模块:同于rsync 中的/                      //只能拷贝文件,或压缩包

/opt/test/    /mnt                   把/opt/test/下的内容拷贝到/mnt下

/opt/test     /mnt                   把/opt下的test拷贝到/mnt下

ansible 主机或主机集合  -m copy -a 'src=本地文件   dest=ansible远程主机文件路径'

  • content:用于替换src,可以直接指定文件的值

ansible 主机集合 -m copy -a 'content="内容信息 "  dest=目标路径  mode=0644'

Ansible-doc里面的一些简单模块使用第5张

  

6.fetch模块   从远程拷贝文件到本机              //只能拷贝文件,或压缩包

ansible 主机或主机集合 -m fetch -a "src=远程主机上的文件 dest=本机路径

force=yes                                    强制复制文件。YES:覆盖,NO:远程主机存在不复制

backup=yes"                          备份源文件,备份文件包含时间信息

7.lineinfile模块  : 类似于sed中的s(替换)

ansible 主机或主机集合  -m lineinfile -a 

'path=要修改的文件                  "/etc/my.cnf"

regexp="正则表达式 "                "^binlog_format"

line="替换的新值 "  '                    "binlog_format=row"

8.replace模块  修改匹配的字段

ansible 主机或主机集合 -m replace -a 

'path=修改文件                           "/etc/my.cnf"

regexp=正则表达式                    "row"

replace=替换的新值'                   "mixed"

9.setup模块 (用于获取主机的信息

ansible 主机或主机集合 -m setup

eg:

ansible webs -m setup -a 'filter= 过滤条件’      filter只能是过滤某个字段的信息,

====ansible webs -m setup|grep 过滤条件

ansible 主机集合  -m setup|grep 过滤条件  --tree    /opt/data                         //将setup的过滤信息保存到文件中,文件名为托管主机IP或域名

                                                                                                            ansible主机上自动创建                                                                                                  

10.script模块

帮助我们在远程主机上执行 ansible 管理主机上的脚本,也就是说,脚本一直存在于 ansible 管理主机本地,不需要手动拷贝到远程主机后再执行

ansible 主机或主机集合 -m script -a '脚本绝对路径'

11.file模块

ansible 主机或主机集合 -m file -a 'path=目录或文件路径   state=状态

recurse:是否递归

state:

directory:目录,不存在则创建

file:文件,不存在也不创建

link:创建软链接        dest=指定链接的路径

hard:创建硬链接

touch:文件不存在的时候,创建一个新的文件

absent:删除目录、文件或者是取消链接文件

 Ansible-doc里面的一些简单模块使用第6张

Ansible-doc里面的一些简单模块使用第7张

link:创建软连接 ln -s

ansible 主机集合  -m file -a 'path=目标路径/连接文件名   src=源链接的文件   state=link'

ansible  wwe   -m  file  -a  'path=/usr/bin/rm  src=/usr/bin/safe-rm  state=link force=yes' -become=true 

           ==ln -s /usr/bin/safe-rm /usr/bin/rm

force=yes   :强制覆盖

-become=true :成为root用户执行

免责声明:文章转载自《Ansible-doc里面的一些简单模块使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【RF库XML测试】Get ElementsJenkins Generic Webhook Trigger+gitlab设置触发器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ansible介绍与安装使用

Ansible 介绍与安装 目录 Ansible 介绍与安装 Ansible的定义 Ansible的基础架构 Ansible的程序目录结构 Anisible特性 注意事项 安装Ansible 自定义清单(配置组内成员) Anisble实现管理方式 Ansible常用模块 ping 模块 user 模块 command/raw/shell 模块 scr...

K8S从入门到放弃系列-(3)部署etcd集群

摘要:etcd 是k8s集群最重要的组件,用来存储k8s的所有服务信息, etcd 挂了,集群就挂了,我们这里把etcd部署在master三台节点上做高可用,etcd集群采用raft算法选举Leader, 由于Raft算法在做决策时需要多数节点的投票,所以etcd一般部署集群推荐奇数个节点,推荐的数量为3、5或者7个节点构成一个集群。 官方地址 https...

jenkins结合ansible用shell实现自动化部署和回滚

最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚。然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现。 环境: centos 7.064位 gitlab:v2.9.0 git:2.9 jenkins 1.651.3、git plugin、GitLab Plugin、Dynam...

关于Kubernetes v1.14.0的 kube-controller-manager部署

  1、 kube-controller-manager准备   默认kube-controller-manager 部署在kube-apiserver部署的服务器上面服务器的配置等在这就不在列出来   二进制文件以及包含在kube-apiserver一起所以不在进行二进制的下载跟分发   2、生成kube-controller-manager访问kube...

搭建一套完整的ELK系统

ELK日志收集系统介绍   一  简单介绍             ELK部署搭建有很多成型的方案,这里推荐一种比较中规中矩的方案,它整合了logstash比较消耗资源以及当服务端临时宕机的时候出现数据丢失的问题,主要由filebeat+redis+logstash+elasticsearch+kibana构成,在每个需要收集日志的机器上面下发filebe...

ansible笔记

目录 列表的使用zookeeper id 使用主机名最后的编号判断一个文件是否是默认的,如果是就清空blockinfile+lookup使用replace+lookup使用ansible2.4 api 调用 列表的使用 我们有一个列表如下(主机为server7-13) (py3) [root@jumpserver app]# cat server_elk....