Ansible常用模块介绍及使用

ansible常用命令解析:

查看当前 ansible 都支持哪些模块: ansible-doc -l

查看某一模块可以使用的参数:ansible-doc -s copy (eg:copy模块)

ansible用法:

ansible 主机名 -m 模块名 -a 模块参数

-m:模块的名字,如果执行单一的命令不用加-m,默认走command

-a: 模块参数,如果模块是command,-a 后面跟的就是命令参数

-i : 指定hosts文件位置      默认:/etc/ansible/hosts

-f: 并行任务数,一定是整数

-u:指定远程用户,默认是root

ping模块

ansible 192.168.118.14 -m ping

可以看到在不使用管道的时候shell和command两个模块是没有分别的,但是使用了管道,可以看到command的管道是不生效的。

shell和command:这两个模块都是运行命令的模块,区别是command模块不支持shell变量和管道。

(1)、批量使用命令[command/shell]


1


    ansible storm_cluster -m command -‘date‘  #  如下图

# 通过这个命令可以直接将两个测试环境的时间都显示出来,success 表示成功执行了。command

此参数表示“在远程主机上执行命令”。

如此可以将date命令,换成/usr/local/tomcat/bin/./shutdown.sh等命令。

(2)、文件复制[copy]     #  复制文件到远程文件


1

2

3

4


      ansible storm_cluster -m copy -a "\

      src=/alidata/www/WEB-INF1214.zip\

      dest=/alidata/www/WEB-INF1214.zip\

      owner=root group=root backup=yes";     #  如下图

src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。

owner:文件所有者

group:文件所属用户组

dest:复制到远程的文件。必填项

mode:文件权限。如文件为755权限,mode="0755"即可。

(3)、远程查看文件内容  


1


     [root@localhost /]# ansible storm_cluster -m command -a "cat /1.txt"    #  如下图

(4)文件管理[file]

file:更改文件的用户及权限,创建或删除文件和目录。

修改所有服务器的/tmp/test.txt文件的权限为755:

# ansible all -m file -a "dest=/tmp/test.txt mode=755"

创建/tmp/test目录:

# ansible testservers -m file -a "dest=/tmp/test mode=755 owner=root group=root state=directory"

删除/tmp/test目录:

# ansible testservers -m file -a "dest=/tmp/test.txt state=absent"

 (5) 软件包管理:【yum/apt】

atp(ubuntu),yum(redhat):

安装一个软件包(links):

# ansible testservers -m yum -a "name=curl state=present"

安装软件到最新版本

# ansible testservers -m yum -a "name=links state=latest" 

删除一个软件包:

# ansible testservers -m yum -a "name=links state=absent"

(6) 用户和用户组[user/group]:

user:创建,修改,删除用户。

创建cmh用户:

# ansible all -m user -a "name=cmh password=123456"

删除cmh用户:

# ansible all -m user -a "name=cmh state=absent" 

创建ansible组:

# ansible 192.168.118.14 -m group -a "name=ansible gid=2016"

(7)服务管理[service]:

service:启动,重启,关闭系统服务。

   关闭服务:

 # ansible testservers -m service -a "name=nfs state=stopped"

开启服务:

 # ansible testservers -m service -a "name=nfs state=started"

重启或者重新加载服务:

 # ansible testservers -m service -a "name=nfs state=restarted"

 # ansible testservers -m service -a "name=nfs state=reloaded"

(8)收集系统信息[setup]:

收集匹配主机的所有信息:

# ansible all -m setup

收集信息并以主机名为文件保存在指定目录中:

# ansible all -m setup --tree /tmp/facts

过滤信息:(收集内存相关)

# ansible all -m setup -a ‘filter=ansible_*_mb‘

(9)定义任务计划[cron]

  # ansible all -m cron -a ‘name="Cron job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/bin/ntpdate tiger.sina.com.cn"

(10)下载文件[get_url]

  ansible 192.168.118.14 -m get_url -a ‘url=http://192.168.118.14/1.png dest=/tmp‘

(11)文件同步[ synchronize]

ansible 192.168.118.14 -m synchronize -a ‘src=/root/test dest=/tmp/ compress=yes‘

http://docs.ansible.com/ansible/modules_by_category.html  # 更多的模块请查看此链接

时间: 2024-07-28 12:59:28

Ansible常用模块介绍及使用的相关文章

ansible常用模块介绍

ansible查看模块用法 例子 查看shell 模块使用方法 [[email protected] opt]# ansible-doc -s shell 注: -i 指定配置文件  tomcatserver自己定义的工作组  -m 指定模块 file模块 file模块包含如下选项: force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下:另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no group:定义文件/目录的属组 mo

Ansible 常用模块介绍

ansible提供了众多模块,我们可以在ansible主机上运行ansible-doc -l命令查看ansible所有支持的模块.通过ansible-doc -s MODULE_NAME  命令可以查看指定模块的所有参数 查看所有模块 [email protected]:/etc/ansible/roles/tomcat8_install/tasks# ansible-doc  -l less 436 Copyright (C) 1984-2009 Mark Nudelman less come

Ansible 自动化运维工具之inventory和常用模块介绍

一.inventory介绍 前面我们介绍过ansible的hosts文件是存放被管理主机的,被管理主机比较少的情况下,直接在hosts中定义即可,但是以后很定会管理多台主机,而ansible可管理的主机集合就叫做inventory.在ansible中,描述你主机的默认方法是将它们列在一个文本文件中,这个文件叫inventory文件. 一个简单的inventory文件可能只包含一组主机名的列表,如下: ftp.testansible.com samba.testansible.com mail.t

Ansible 之 概念和常用模块介绍

1  概述 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括如下的特性: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:

Ansible的安装、配置及常用模块介绍

Ansible的安装.配置及常用模块介绍 ansible安装方式 1. ansible安装常用两种方式,yum安装和pip程序安装 这里提供二种安装方式,任选一种即可: 1.使用yum安装 yum install epel-release -y yum install ansible –y 2. 使用pip(python的包管理模块)安装 pip install ansible   #如果没pip,需先安装pip.yum可直接安装: yum install python-pip pip inst

Ansible 常用模块详解(3)

title: Ansible 常用模块详解(3) date: 2018-12-01 15:22:11 tags: Ansible categories: Ansible copyright: true --- Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能,ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是an

ansible常用模块详解

ansible常用模块详解: ansible <host-pattern> [-m module_name] [-a args] [options] #ansible命令格式  指定主机组或ip地址  指定调用模块   传递给模块的参数   ansible-doc -l #列出可用模块 ansible-doc -s model_name #查看指定模块详细用法 command:ansible默认模块,对指定主机执行命令,不能理解特殊字符 例:ansible web -a 'date' #对we

python基础31[常用模块介绍]

python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1)python运行时服务 * copy: copy模块提供了对复合(compound)对象(list,tuple,dict,custom class)进行浅拷贝和深拷贝的功能. * pickle: pickle模块被用来序列化python的对象到bytes流,从

ansible常用简易介绍

ansible常用指令 ansible:用于执行ansible常用模块的指令 ansible-doc:查看ansible模块文档 ansible-galaxy:下载一些东东给ansible用 一般现成的程序在 galaxy.ansible.com 网站 ansible-playbook:核心,常用于批量部署机器服务和初始化(需要利用yaml语法写一些任务和规则) ansible-pull:拉取 ansible-push:推送 ansible-vault:给文件加密 ansible-console