本节内容:

  • ansible命令基础
  • 常见模块举例

一、ansible命令基础

语法:

ansible <host-pattern> [-f forks] [-m module_name] [-a args] [options] 
  • host-pattern:这次的命令对哪些主机生效;
  • -f forks:启动的并发线程数,就是一次并行处理多少主机;
  • -m module_name:要使用的模块;
  • -a args:模块特有的参数。

常见的模块:

  • user
  • yum
  • copy
  • cron
  • command:这是默认的模块,表示在被管理主机上运行一个命令。对于command模块,-a不再是指定参数,而是命令本身。
  • shell

二、常见模块举例

1. /etc/ansible/hosts配置文件内容

2. command模块

command模块是默认的模块,表示在被管理主机上运行一个命令。对于command模块,-a不再是指定参数,而是命令本身。所以这个模块有个缺陷,运行的命令中不能使用变量或者参数。

示例:

[root@node1 ~]# ansible nginx -m command -a "date"

[root@node1 ~]# ansible mysql -m command -a "tail -3 /etc/passwd"

3. cron模块

cron模块可以让每一个被管理节点能够自动生成一个定期任务计划。查看cron模块的用法:

[root@node1 ~]# ansible-doc -s cron

示例:

[root@node1 ~]# ansible mysql -m cron -a 'minute="*/10" job="/usr/bin/echo hello" name="test cron job"'

注意:

  • 所有的参数可以用""包含起来
  • day之类的参数没有指定,默认都是*
  • 默认state参数的值为present

4. user模块

user模块实现用户账号管理。查看user模块的用法:

[root@node1 ~]# ansible-doc -s user

几个主要参数:

  • name=:用户名
  • uid:用户的uid
  • group:所属组,即私有组
  • groups:附加组。
  • state:状态。

示例:

[root@node1 ~]# ansible mysql -m user -a 'name="jack"'

[root@node1 ~]# ansible mysql -m user -a 'name="jack" state=absent'

5. group模块

group模块:组管理。查看group模块的用法:

示例:

[root@node1 ~]# ansible-doc -s group

[root@node1 ~]# ansible mysql -m group -a 'name=mysql gid=306 system=yes'

6. copy模块

copy模块实现文件复制。查看copy模块的用法:

[root@node1 ~]# ansible-doc -s copy

几个主要参数:

  • src=:指明源文件本地路径。可以是绝对路径,也可以是相对路径。可以不使用src,使用content。就是说用content内容来生成文件。
  • dest=:定义远程目标文件路径,只能使用绝对路径。
  • content=:可以不使用src,使用content。就是说用content内容来生成文件。

示例:

[root@node1 ~]# ansible mysql -m copy -a 'src=/etc/fstab dest=/tmp/fstab.ansible owner=root mode=640'

[root@node1 ~]# ansible mysql -m copy -a 'content="Hello World\nGood boy" dest=/tmp/test.txt owner=root mode=640'

7. file模块

file模块可以设定文件属性,还可以创建文件的符号链接。查看file模块的用法:

[root@node1 ~]# ansible-doc -s file

几个重要参数:

  • path=:指明对哪个文件做管理。也可以使用dest和name。
  • 创建文件的符号链接:src=:指明源文件,path=:指明符号链接文件路径

示例:

[root@node1 ~]# ansible mysql -m file -a 'owner=root group=mysql mode=644 path=/tmp/test.txt'

[root@node1 ~]# ansible mysql -m file -a 'path=/tmp/test.link src=/tmp/test.txt state=link'

8. ping模块

ping模块测试指定主机是否能连接。查看ping模块的用法:

[root@node1 ~]# ansible-doc -s ping

示例:

[root@node1 ~]# ansible nginx -m ping

9. service模块

service模块是管理服务的。查看service模块的用法:

[root@node1 ~]# ansible-doc -s service

几个重要参数:

  • enabled=:是否开机自动启动,取值为true或false;
  • name=:服务名字;
  • state=:状态,取值有started,stoped,restarted。

示例:

[root@node1 ~]# ansible 172.16.7.151 -m service -a 'enabled=true name=httpd state=stopped'

10. shell模块

和command模块类似,但是可以使用变量。用于执行一些复杂的命令。查看shell模块的使用方法:

[root@node1 ~]# ansible-doc -s shell

示例:

[root@node1 ~]# ansible mysql -m user -a 'name="test"'
[root@node1 ~]# ansible mysql -m command -a 'echo wisedu | passwd --stdin test'
[root@node1 ~]# ansible mysql -m command -a 'tail -1 /etc/passwd'

[root@node1 ~]# ansible mysql -m shell -a 'echo wisedu | passwd --stdin user1'
[root@node1 ~]# ansible mysql -m command -a 'tail -1 /etc/shadow'

所以一旦有管道、变量之类的,你最好使用shell模块,而不要用command模块。

11. script模块

script模块将本地脚本复制到远程主机并运行之。查看script模块的用法:

[root@node1 ~]# ansible-doc -s script

示例:

[root@node1 ~]# vim test.sh
#/bin/bash
echo "hello world" >/tmp/nba.txt
[root@node1 ~]# chmod +x test.sh
[root@node1 ~]# ansible mysql -m script -a '/root/test.sh'

12. yum模块 

yum模块管理程序包。查看yum模块的用法:

[root@node1 ~]# ansible-doc -s yum  

几个重要参数:

  • name=:指定要安装的程序包,可以带上版本号,否则安装最新版本;
  • state=:present表示安装,absent表示卸载。

示例:

[root@node1 ~]# ansible mysql -m yum -a 'name=ksh'

13. setup模块

setup模块:收集远程主机的facts。ansbile在管理每一个主机时,这些主机在被运行管理命令之前,会首先向ansible节点报告自己主机当前的各种可能被ansible主机用到的状态信息,如操作系统版本、ip地址等信息,这些信息都是以变量的形式,ansible主机可以在jinjia2中调用,为不同的服务器生成不同的配置文件。

[root@node1 ~]# ansible mysql -m setup

ansible入门二(Ansible常见模块介绍)的更多相关文章

  1. Ansible常见模块介绍

    本节内容: ansible命令基础 常见模块举例 一.ansible命令基础 语法: ansible <host-pattern> [-f forks] [-m module_name] ...

  2. Ansible 常见模块介绍

    目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...

  3. ansible概述、安装、模块介绍

    一.Ansible介绍 Ansible是一 个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩. 它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功 ...

  4. ansible 的安装及常见模块使用

    ansible 基础keys的ssh协议配置的 特性:幂等性:一个任务执行1遍和执行n遍效果一样. ansible是个管理软件不是服务,不需要长期运行  一.通过epel源安装ansible, 1.下 ...

  5. CSS3_概述、发展史、模块介绍、与浏览器之间的关系

    一.CSS3概述和CSS3的发展史: 1.css3概述: CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能.    目前主流浏览器chrome.safari. ...

  6. python的os模块fnmatch模块介绍

    一.先介绍一下os模块 import os print(os.getcwd()) # E:\python\test\python_models # 获取当前的目录 print(os.listdir(& ...

  7. ansible的介绍和一些基本模块介绍

    必须保证ansible工作站与各个node实现无密码ssh登入 ①:192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible.   ②:文件服务器1到代理服务器3 - 使用 19 ...

  8. Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken

    Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...

  9. Ansible 入门指南 - 常用模块

    介绍 module 文档: 官宣-模块分类的索引 官宣-全部模块的索引 在playbook脚本中,tasks 中的每一个 action都是对 module的一次调用.在每个 action中: 冒号前面 ...

随机推荐

  1. knockout 学习使用笔记----绑定map--双向绑定

    简单的方式,使用 knockout.mapping.js. 1.引入knockout.mapping.js. 2.声明模型 var model = { task:null, feedbacks:[], ...

  2. 处理函数和数组声明[条款17]---《C++必知必会》

    指向函数的指针声明和指向数组的指针声明容易混淆,原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号. int *f1( );//一个返回值为 int* 的函数 int ( ...

  3. 微信小程序组件navigator

    导航navigator:官方文档 Demo Code: // redirect.js navigator.js Page({ onLoad: function(options) { this.setD ...

  4. 基于EasyUI 快速搭建权限管理平台

    前言: 一.用户角色权限设计思路: <1>不同职责的人员,对于系统操作的权限应该是不同;<2>可以对“组”进行权限分配;<3>权限管理系统应该是可扩展的;<4 ...

  5. ACM对拍程序

    1.把所需对拍的代码的可执行文件a.exe b.exe放在同一目录下 2.把rand数据的代码的可执行文件c.exe放在该目录下 3.新建一个txt文件,里面添加代码,后把格式改成bat @echo ...

  6. Java Vertor详细介绍和使用示例

    ①对Vector有个整体认识 Vector是向量类,继承于AbstractList,实现了List,RandomAccess,Clonable这些接口. Vector继承于AbstractList,实 ...

  7. js小工具---本地图片转换为base64编码数据

    今天用jmeter对图片对比进行性能测试,post请求为json请求,图片为Base64编码后的图片数据.所以需要将一张本地图片生成base64编码,找到一个js小工具,记录在这儿便于以后复用. 效果 ...

  8. rootpw密码生成方法/c-exit

    linux kickstart文件里rootpw密码可以使用明文,也可以使用加密过的值,这里主要介绍下三种加密方法:md5.sha256.sha512 使用明文的方法 rootpw "pas ...

  9. 激活webstorm(作为一个伪前端,偶尔用用)

    推荐博客:https://blog.csdn.net/voke_/article/details/76418116 我试的方法一.

  10. Windos 系统网络连接 调优

    1.运行进入注册表:regedit 2.进入注册表指定路径 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ...