Ansible常用模块及API
Ansible安装
安装EPEL作为安装Ansible的yum源(CentOS6.4):
rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
安装Ansible:
yum install ansible -y
配置文件:
路径:/etc/ansible/hosts
配置说明:webservers为组名,下面的ip或域名则是属于该组的主机。
[webservers]
192.168.1.111
192.168.1.112
192.168.1.113
测试:
ansible webservers -m ping -k #对webservers组进行ping操作
由于主控端与被控主机未配置SSH证书信任,需要在执行ansible命令时添加-k参数,要求提供root(默认)账号密码。
配置SSH证书信任:
主控端:
生成密钥对:
ssh-keygen -t rsa #一路回车,在/root/.ssh/目录下会生成id_rsa(私钥)、id_rsa.pub(公钥)密钥对
将公钥发送的被控主机:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.111
常用模块
命令行调用模块格式:
ansible 操作目标 -m 模块名(默认模块为command) -a 模块参数 #例:
ansible webservers -m ping
帮助命令:
ansible-doc 模块名 #例:
ansible-doc ping
1、远程命令模块
command:执行远程shell命令
script:在被控端执行主控端上存放的脚本,相当于scp+shell
shell:执行存放在被控端上的脚本
例:
ansible webservers -m command -a 'df -h' #在被控端执行df -h命令
ansible webservers -m script -a '/root/test.sh' #在被控端执行test.sh脚本(test.sh脚本在主控端)
ansible webservers -m shell -a '/root/test.sh' #在被控端执行test.sh脚本(test.sh脚本在被控端)
2、copy模块
copy:从主控端向被控端拷贝文件,类似于scp功能
例:
ansible webservers -m copy -a 'src=/root/test.py dest=/tmp owner=root group=root mode=0755'
#将主控端的test.py文件拷贝到被控端的/tmp目录下,并且指定文件的属主和权限
3、stat模块
stat:获取远程文件状态信息,包括atime、ctime、mtime、md5、uid、gid等
例:
ansible webservers -m stat -a 'path=/etc/sysctl.conf' #获取被控端/etc/sysctl.conf文件状态信息
4、get_url模块
get_url:实现被控端下载指定URL,支持sha256sum校验
例:
ansible 192.168.1.111 -m get_url -a 'url=http://www.baidu.com dest=/tmp/index.html mode=0440 force=yes'
#被控端下载百度首页到/tmp/index.html中
5、软件操作模块(yum、apt)
yum/apt:linux平台软件包管理操作
例:
ansible 192.168.1.111 -m yum -a 'name=curl state=latest' #被控端使用yum安装最新的curl
ansible 192.168.1.111 -m apt -a 'pkg=curl state=latest' #被控端使用apt安装最新的curl
6、cron模块
cron:被控端cron配置
例:
ansible 192.168.1.111 -m cron -a "name='check dirs' hour='5,2' job='ls -alh > /dev/null'" #被控端cron结果: #Ansible: check dirs
* 5,2 * * * ls -alh > /dev/null
7、mount模块
mount:被控端分区挂载
例:
ansible 192.168.1.111 -m mount -a 'name=/mnt/data src=/dev/sd0 fstype=ext3 opts=ro state=present'
#将/dev/sd0挂载到/mnt/data,权限为ro
8、service模块
service:被控端系统服务管理
例:
ansible webservers -m service -a 'name=httpd state=stopped' #关闭httpd服务
ansible webservers -m service -a 'name=httpd state=restarted' #重启httpd服务
ansible webservers -m service -a 'name=httpd state=started' #启动httpd服务
9、sysctl包管理模块
sysctl:被控端sysctl配置
例:
ansible 192.168.1.111 -m sysctl -a 'name="net.ipv4.ip_forward" value=1 sysctl_set=yes state=present reload=yes'
#设置路由转发并生效
10、user服务模块
user:被控端系统用户管理
例:
ansible 192.168.1.111 -m user -a "name=johnd comment=Hohn Doe" #添加用户john
ansible 192.168.1.111 -m user -a "name=johnd state=absent remove=yes" #删除用户john
API调用方式
https://ansible-tran.readthedocs.io/en/latest/docs/developing_api.html
安装使用Ansible可能会出现的问题
http://blog.csdn.net/longxibendi/article/details/46989735
参考资料:
刘天斯《Python自动化运维技术与最佳实践》
Ansible常用模块及API的更多相关文章
- Func常用模块及API
Func常用模块及API Func提供了非常丰富的功能模块,包括: CommandModule(执行命令) CopyFileModule(拷贝文件) CpuModule(CPU信息) DiskModu ...
- ansible常用模块用法
ansible常用模块用法 2015-07-21 10:25 24458人阅读 评论(1) 收藏 举报 分类: Linux(44) ansible 版权声明:本文为博主原创文章,未经博主允许不得 ...
- Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken
Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...
- Ansible常用模块命令
Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...
- Ansible常用模块介绍及使用(2)
Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)–技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几个 ...
- Saltstack常用模块及API
Saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能.常用工具支持等,更多模块信息可以查看官网模块介绍.也可以通过sys模块列出当前版本支持的模块. salt '*' sys.list_ ...
- Func系列2:常用模块及API
简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).Fil ...
- Saltstack系列3:Saltstack常用模块及API
说明 salt '*' sys.list_modules #列出当前版本支持的模块 API原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现 ...
- ansible常用模块入门
常用模块有以下几个 command copy shell crond yum service setup 1.command模块 ansible george -m command -a " ...
随机推荐
- 如何重启Activity
有的时候,我们只是想重启某个Activity,但是不重启整个App. 一种做法是: Intent intent = getIntent(); overridePendingTransition(0, ...
- sql server中NULL导入decimal字段时报错
sql server中NULL导入decimal字段时报错 在导入CSV文件时,如果decimal字段为null值,导致文本文件入库时失败. 错误现象 构造例子 新建一张表,包含decimal字段. ...
- php二分式查找
要求数组是有序数组 1 <?php 2 #二分查找 3 function binarySearch(Array $arr, $target) { 4 $low = 0; 5 $high = co ...
- 331. Verify Preorder Serialization of a Binary Tree
One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, ...
- c 函数及指针学习 10
标准库函数 1算数运算stdlib.h 2随机数stdlib.h 3字符串转化stdlib.h 4数学函数 math.h 5日期和时间 time.h 6信号 signal.h 7打印可变参数列表std ...
- C中scanf/gets/fgets的区别
功能:同样是获取字符串. 区别: scanf 遇到空格/回车/Tab键认为输入结束, 但是空格/回车/Tab键仍会留在输入的缓冲区中.常见的是使用getchar(),处理scanf的后事:如果想要清除 ...
- Linux系统编程@终端IO
Linux系统中终端设备种类 终端是一种字符型设备,有多种类型,通常使用tty 来简称各种类型的终端设备.终端特殊设备文件一般有以下几种: 串行端口终端(/dev/ttySn ) ,伪终端(/dev ...
- Android应用开发高效工具集1---ant构建简单Android项目
本文转载于:http://blog.csdn.net/lincyang/article/details/40950153 在java编译那些事儿中提到了用ant去编译Java项目,今天扩展到用它来构建 ...
- 复利计算器4.0 【java版】
import java.util.Scanner; public class FuLi { public static void main(String[] args) { ; Scanner sca ...
- Oracle数据库——Scheduler Job
日常的运维工作中,我们经常使用Linux Server的anacron服务来使得服务器执行一下计划之内的任务,可以按照特定的时间间隔,重复的执行相关的命令或者相关的脚本,来完成预期的目标,能够节省相关 ...