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 " ...
随机推荐
- Yii2中自带分页类实现分页
1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){ $data = Fie ...
- 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果
去年盛夏之时,曾写过“小tip: 使用CSS将图片转换成黑白”一文,本文的模式以及内容其实走得是类似路线.CSS3 → SVG → IE filter → canvas. 前段时间,iOS7不是瓜未熟 ...
- webStorm快捷键总结
Ctrl+Shift+a:快速查找使用编辑器所有功能1.左侧栏目录显影:Ctrl+Shift+F122.文件模板配置:File>Settings>Editor>File and Co ...
- Socket实现异步通信
private static void RecVing(IAsyncResult Result) { //通过 result 获取socket.在这个socket上你启动了BeginAccep ...
- C#部分---二维数组、split分割;
二维数组定义方式: int[,] array = new int[3, 4]{ {1,2,3,4}, {3,4,5,6}, {5,6,7,8} }; 3表示,有三个一 ...
- leetcode 123. Best Time to Buy and Sell Stock III ----- java
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- 《Java程序设计》第3周学习总结
学号20145220<Java程序设计>第3周学习总结 教材学习内容总结 使用jave撰写程序几乎都在使用对象(Object),要产生对象必须先定义类(Class),类是对象的设计图,对象 ...
- Android——AutoCompleteTextView、Spinner和消息提示
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- kuangbin_UnionFind J (POJ 2492)
加权并查集mod2模板 本体的难点是bug的释义(笑) #include <iostream> #include <string> #include <cstdio> ...
- 黑马程序员——JAVA基础之泛型和通配符
------- android培训.java培训.期待与您交流! ---------- 泛型: JDK1.5版本以后出现新特性.用于解决安全问题,是一个类型安全机制. 泛型好处: ...