本节内容:

  • 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常见模块介绍的更多相关文章

  1. Ansible 常见模块介绍

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

  2. ansible入门二(Ansible常见模块介绍)

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

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

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

  4. Ansible常用模块介绍及使用(2)

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

  5. ansible常见模块

    模块的使用 查看模块帮助 ansible-doc -l 查看所有模块 ansible-doc -s MODULE_NAME 查看指定模块的详细帮助 ansible命令应用基础 语法: ansible ...

  6. Ansible常用模块介绍

    ansible < HOST-PATTERN > [ -f FORKS ] [ -m MOUDULE ] [ -a "ARGS" ] [ -o ] MOUDULE: p ...

  7. 第二十六章 ansible主要模块介绍

    一.Ansible模块回顾 1.command模块 [root@m01 ~]# ansible web01 -m command -a 'free -m' 2.shell模块 #支持管道符这种特殊符号 ...

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

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

  9. ansible 常用模块的使用

    安装 yum -y install ansible 配置文件/etc/ansible/hosts 模块介绍与使用 ping模块 [root@node1 config]# ansible k8s -m ...

随机推荐

  1. python学习(20) 网络编程

    原文链接:http://www.limerence2017.com/2018/01/02/python20/ python 网络编程和基本的C语言编程一样,效率不是很高,如果为了封装通信库建议采用C/ ...

  2. Rstudio常用快捷键

    多行注释 ctrl+shift+c 运行单行或选中代码 ctrl+enter 查看帮助 F1

  3. Linux根目录解析

    根目录结构如下: 1. / - 根目录: 每一个文件和目录都从这里开始. 只有root用户具有该目录下的写权限.此目录和/root目录不同,/root目录是root用户的主目录. 2. /bin - ...

  4. 戴尔R720xd服务器系统安装前期环境实现

    型号:R720xd 开启服务器,Ctrl+R进入raid配置 配置完raid后F2对硬盘进行格式化 保存并重启 F11进入BIOS选项设置U盘启动 选择U盘启动 开始进行系统安装!

  5. 接口测试Case之面向页面对象编写及规范

    一.什么是页面对象化 主要提倡的思想是:万物皆对象,即把一个Page看成一个对象,来进行接口自动化Case的编写,不要闲扯,直接讲怎么个操作法呢? 二.有什么优势? 2.1 Case层次清晰,便于管理 ...

  6. dp px 互转工具类

    public class DensityUtils { public static int dpToPx(Context context,int dp){ float density = contex ...

  7. 七、新时间日期 API

    一.使用 LocalDate. LocalTime. LocalDateTime LocalDate. LocalTime. LocalDateTime 类的实例是不可变的对象,分别表示使用 ISO- ...

  8. <转>Android APP字体大小,不随系统的字体大小变化而变化的方法

    从android4.0起系统设置的”显示“提供设置字体大小的选项.这个设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非.下面是解决方案 Resources r ...

  9. 【BZOJ】3456: 城市规划 动态规划+多项式求逆

    [题意]求n个点的带标号无向连通图个数 mod 1004535809.n<=130000. [算法]动态规划+多项式求逆 [题解]设$g_n$表示n个点的无向图个数,那么显然 $$g_n=2^{ ...

  10. tmux终端工具

    本文原始地址:http://www.cnblogs.com/chinas/p/7094172.html,转载请注明出处,谢谢!!! 1.介绍 tmux(终端复用工具):一个很有趣的工具,类似GNU S ...