ansible学习系列2-ansible常用模块使用

赵杰迪 赵杰迪     2022-09-06     750

关键词:

1. 查看支持的模块

[[email protected] ~]# ansible-doc -l

这里我们看下ansible的支持的模块个数

[[email protected] ~]# ansible-doc -l |wc -l   #查看支持的模块个数
1039
[[email protected] ~]# ansible --version        #查看我们的ansible版本号
ansible 2.3.1.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.6.6 (r266:84292, Aug 18 2016, 14:53:48) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]

2.获取模块的帮助

这里我们使用ansible-doc获取下command模块的使用方式。

[[email protected] ~]# ansible-doc command

 

3.1 command模块

command :作为ansible的默认模块,可以允许远程主机范围内的所有shell命令。

注意: 在command的命令中含有像`$ HOME‘这样的变量和像``<“‘,`”>“, `“”“”,“”;“”和“”&“‘将无法正常工作(如果需要这些功能,请使用[shell]模块)

[[email protected] ~]# ansible 192.168.168.11* -m command -a ip addr show dev eth0
192.168.168.115 | SUCCESS | rc=0 >>
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:29:8d:e2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.115/24 brd 192.168.168.255 scope global eth0
    inet6 fe80::250:56ff:fe29:8de2/64 scope link 
       valid_lft forever preferred_lft forever

192.168.168.111 | SUCCESS | rc=0 >>
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:77:77:91 brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.111/24 brd 192.168.168.255 scope global eth0
    inet6 fe80::20c:29ff:fe77:7791/64 scope link 
       valid_lft forever preferred_lft forever

3.2 script模块

功能:在远程主机上执行主控端的脚本,相当于scp+shell组合。

[[email protected] ~]# ansible all -m script -a "/home/test.sh 12 34"

3.3 shell模块

功能:执行远程主机的shell脚本文件

[[email protected] ~]# ansible all -m shell -a "/home/test.sh"

shell替代command执行

[[email protected] ~]# ansible 192.168.168.11* -m shell -a ip addr show dev eth0
192.168.168.111 | SUCCESS | rc=0 >>
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:77:77:91 brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.111/24 brd 192.168.168.255 scope global eth0
    inet6 fe80::20c:29ff:fe77:7791/64 scope link 
       valid_lft forever preferred_lft forever

192.168.168.115 | SUCCESS | rc=0 >>
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:29:8d:e2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.115/24 brd 192.168.168.255 scope global eth0
    inet6 fe80::250:56ff:fe29:8de2/64 scope link 
       valid_lft forever preferred_lft forever

3.4 copy模块

功能: 实现主控端向目标主机copy文件。

[[email protected] ~]# ansible all -m copy -a "src=/home/test.sh dest=/tmp/ owner=root group=root mode=0755"    
#src 主控端文件位置
#dest 被控端目标位置
#owner 文件复制过去后的所有者
#group 文件复制过去后的所属组
#mode 文件的权限设定,执行a+x这种方式

3.5 stat模块

功能: 获取远程文件的状态信息,包括atime,ctime,mtime,md5,uid,gid等信息。

[[email protected] ~]# ansible all -m stat -a "path=/etc/sysctl.conf"

3.6 yum模块

功能: 安装软件包。

[[email protected] ~]# ansible all -m yum -a "name=httpd state=latest disable_gpg_check=yes enablerepo=epel"
#name 包名
#state (Choices: present, installed, latest, absent, removed)[Default: present]
#disable_gpg_check:禁止gpg检查
#enablerepo:只启动指定的repo

3.7 cron模块

功能:远程主机crontab配置

[[email protected] ~]# ansible all -m cron -a "name=‘test‘ hour=‘2-5‘ minute=‘*/5‘ day=‘1‘ month=‘3,4‘ weekday=‘1‘ job=‘ls -l‘ user=tom"
192.168.168.115 | SUCCESS => {
    "changed": true,
    "envs": [],
    "jobs": [
        "test"
    ]
}
192.168.168.111 | SUCCESS => {
    "changed": true,
    "envs": [],
    "jobs": [
        "test"
    ]
}

我们去被控主机看下生成的crontab作业

[[email protected] ~]# crontab  -l -u tom
#Ansible: test
*/5 2-5 1 3,4 1 ls -l

删除指定crontab

[[email protected] ~]# ansible all -m cron -a "name=test state=absent"

3.8 mount模块

功能: 挂载文件系统

[[email protected] ~]# ansible 192.168.168.111 -m mount -a "path=/mnt/data src=/dev/sd0 fstype=ext3 ots=ro state=present"

注:mount已经使用path代替了原来的name参数,但是name参数还是可以使用的。

3.9 service模块

功能: 服务管理

[[email protected] ~]# ansible all -m service -a "name=httpd state=restarted"    #启动服务
[[email protected] ~]# ansible all -m service -a "name=httpd state=running"      #查看服务状态
[[email protected] ~]# ansible all -m service -a "name=httpd state=stoped"       #停止服务

3.10 user模块

功能: 远程主机的用户管理

[[email protected] ~]# ansible all -m user -a "name=jerry comment=‘ doubi jerry‘"   #添加用户 详细参数参考ansible-doc user
[[email protected] ~]# ansible all -m user -a "name=jerry state=absent remove=yes"  #删除用户

 

ansible环境搭建(常用模块使用)(代码片段)

文章目录ansible1.ansible是什么2.ansible环境搭建3.服务器分组4.ansible模块1)hostname模块2)file模块*3)copy模块*3)stat模块stat模块类似linux的stat命令,用于获取文件的状态信息。4)template模块5)fetch模块6)user模块7)group... 查看详情

ansible使用一(ansible的安装及ansible常用模块的使用)(代码片段)

1、ansible概述        Ansible是一款基于Python开发的自动化运维工具,它不需要安装客户端,使用SSH进行通信,同时可支持系统账号认证或秘钥认证,也支持windows客户端。Ansible主要组成部分:  ... 查看详情

自动化运维—ansible工具的使用(代码片段)

Ansible一、概述1.1特点1.2优点二、服务搭建2.1准备工作2.2ansible端设置三、ansible命令行模块3.1command模块概述命令使用常用参数3.2shell模块概述命令3.3cron模块概述常用参数命令3.4user模块概述常用参数命令3.5group模块概述命令3.6copy模... 查看详情

自动化运维—ansible工具的使用(代码片段)

Ansible一、概述1.1特点1.2优点二、服务搭建2.1准备工作2.2ansible端设置三、ansible命令行模块3.1command模块概述命令使用常用参数3.2shell模块概述命令3.3cron模块概述常用参数命令3.4user模块概述常用参数命令3.5group模块概述命令3.6copy模... 查看详情

自动化运维—ansible工具的使用(代码片段)

Ansible一、概述1.1特点1.2优点二、服务搭建2.1准备工作2.2ansible端设置三、ansible命令行模块3.1command模块概述命令使用常用参数3.2shell模块概述命令3.3cron模块概述常用参数命令3.4user模块概述常用参数命令3.5group模块概述命令3.6copy模... 查看详情

ansible学习总结——ansible入门详解(代码片段)

一、Ansible 简介1、Ansible 是什么ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是... 查看详情

ansible学习总结——ansible入门详解(代码片段)

一、Ansible 简介1、Ansible 是什么ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是... 查看详情

ansible

大型架构及配置技术一.环境准备(六台机器) 1.ansible简介 ansible是2013年推出的一款IT自动化和DevOps软件,基于python开发,糅合了很多老运维工具的特点,可以实现批量操作系统配置,批量程序部署,批量运行命令等功能2.ansible可以... 查看详情

实例学习ansible系列常用模块之user/group

...oup模块,用于管理group。使用user模块添加用户[root@host31~]#ansiblehost32-mcommand-a"idtest01"host32|FAILED|rc=1>>id:test01:nosuchuser[root@host31~]#ansiblehost32-muser-a"name=test01group=root"host32|SUCCESS=>"changed":true,"comment":"","createhome":true,"group":0,"home":"/ho... 查看详情

ansible系列-基础篇-ansible的安装、配置和基本使用

参考技术A原文地址:Ansible系列-基础篇-Ansible的安装、配置和基本使用1、Ansible目前支持Linux和MacOS作为控制节点,管理节点可以是Linux、MacOS、其他类Unix系统和Windows。2、Ansible节点主要分为两类,管理节点和被管理节点需要主要... 查看详情

一:ansible介绍及安装(代码片段)

一:Ansible基本概述1什么是ansibleAnsible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。2同... 查看详情

ansible批量部署(代码片段)

自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion)回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署->启动服务->测试->加入集群 1.Ansible基本概述ansible是一个配置管理系统configurationmanage... 查看详情

自动化运维管理工具ansible的详细解读(代码片段)

Ansible的详细解读一、Ansible介绍2.1Ansible能做什么?2.2Ansible的特性和原理二、Ansible部署①管理端安装ansible服务②配置主机清单③配置密钥对验证④设置免密登录⑤查询被控制端的当前日期测试三、Ansible命令模块3.1command模块3.... 查看详情

ansible基础学习,常用模块概述

ansible十大模块常用概述注:-a参数后的命令用单引号,单引号,单引号;双引号有可能会出问题,特别是在user模块;配置文件:vim/etc/ansible/hostsvim/.ssh/authorized_keys语法格式:ansible 匹配模式 -m 模块  -a  ... 查看详情

ansible使用心得(代码片段)

...大的自动化工作。在ansile使用的过程中,有三种用途1、ansible自行一次性任务,即执行命令如:ansible10.59.87.11-mpingansible10.59.87.11-mcopy-a"src=/etc/issuedest=/tmp/"执行的方式是:anbile+执行的主机可以多种方式匹配(默认在./etc/ansi... 查看详情

ansible基础概述

一、Ansible简介      Ansible基于Python语言实现,由paramiko和PyYAML两个关键模块构建。Ansible的编排引擎可以出色地完成配置管理,流程控制,资源部署等多方面工作。Ansible公司负责Ansible开源软件的维护,管理... 查看详情

ansible管理命令(代码片段)

Ansible管理命令(1)ansible这个命令是日常工作中使用率非常高的命令之一,主要用于临时一次性操作;(2)ansible-docAnsible模块文档说明,针对每个模块都有详细的用法说明和应用案例介绍;(3)ansible-galaxy可以简单的理解为Githu... 查看详情

ansible的部署和命令模板

一、ansible的概述1、ansible简介Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。Ansi... 查看详情