Ansible常见模块介绍
本节内容:
- 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 常见模块介绍
目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...
- ansible入门二(Ansible常见模块介绍)
本节内容: ansible命令基础 常见模块举例 一.ansible命令基础 语法: ansible <host-pattern> [-f forks] [-m module_name] ...
- Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken
Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...
- Ansible常用模块介绍及使用(2)
Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)–技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几个 ...
- ansible常见模块
模块的使用 查看模块帮助 ansible-doc -l 查看所有模块 ansible-doc -s MODULE_NAME 查看指定模块的详细帮助 ansible命令应用基础 语法: ansible ...
- Ansible常用模块介绍
ansible < HOST-PATTERN > [ -f FORKS ] [ -m MOUDULE ] [ -a "ARGS" ] [ -o ] MOUDULE: p ...
- 第二十六章 ansible主要模块介绍
一.Ansible模块回顾 1.command模块 [root@m01 ~]# ansible web01 -m command -a 'free -m' 2.shell模块 #支持管道符这种特殊符号 ...
- ansible的介绍和一些基本模块介绍
必须保证ansible工作站与各个node实现无密码ssh登入 ①:192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible. ②:文件服务器1到代理服务器3 - 使用 19 ...
- ansible 常用模块的使用
安装 yum -y install ansible 配置文件/etc/ansible/hosts 模块介绍与使用 ping模块 [root@node1 config]# ansible k8s -m ...
随机推荐
- Maven学习一:使用Myeclipse创建Maven项目
使用Myeclipse2014创建Maven项目有如下几种方式: 1.创建Maven Java项目 1.1 选择新建Maven项目 1.2.选择创建简单项目 1.3.填写项目信息 1.4.创建成功后项 ...
- Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...
- JAVA编程之——反射Reflect
说到反射,首先要说一下Java中的类和对象. 在Java中万事万物皆对象(有两个 例外,一个是普通数据类型,另一个是静态的东西,静态的东西不是对象的,是属于类的). 在Java中,类也是对象,类是ja ...
- 【学习DIV+CSS】1. 你必须知道的三个知识
1. DIV+CSS的叫法不够严谨 我们以前做页面布局的时候大多是用Table,很多人称之为“Table+CSS”,而现在比较流行的是DIV布局,所以称之为“DIV+CSS”.听起来是挺合理的,岂不知 ...
- 非常强力的reduce
Array 的方法 reduce 是一个有非常多用处的函数. 它一个非常具有代表性的作用是将一个数组转换成一个值.但是你可以用它来做更多的事. 1.使用"reduce"代替&quo ...
- elasticsearch-head插件安装说明
下载及安装readme https://github.com/mobz/elasticsearch-head 安装: npm install npm run start 访问:http://local ...
- 矩阵 matrix
传送门 注意这题时限是2s [问题描述] 有一个n × m的矩阵,你从左上角走到右下角,只能向下和向右走. 每个点上有一个重量v i,j 价值w i,j 的物品,你有一个容量为S的背包,经过一个点你可 ...
- Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
当使用语句还原数据库时,报如下错误: 消息 3234,级别 16,状态 2,第 29 行逻辑文件 'LenborMealOrder_Base_2017' 不是数据库 'Members_01' 的一部分 ...
- Linux基础-free窥内存-dd探硬盘
监控内存篇(RAM)-free free指令可以很直观的看到内存的使用情况 free -m指令以单位为MB的方式查看内存的使用情况(free命令读取的文件是/proc/meminfo) 这个表格的解释 ...
- WeX5入门之欢乐捕鱼打包
一.下载欢乐捕鱼的素材包 https://files.cnblogs.com/files/wordblog/%E7%B4%A0%E6%9D%90.zip 二.把欢乐捕鱼素材放入项目中 并启动tomca ...