Ansible常用模块及API

时间:2021-08-09 02:08:04

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的更多相关文章

  1. Func常用模块及API

    Func常用模块及API Func提供了非常丰富的功能模块,包括: CommandModule(执行命令) CopyFileModule(拷贝文件) CpuModule(CPU信息) DiskModu ...

  2. ansible常用模块用法

    ansible常用模块用法 2015-07-21 10:25 24458人阅读 评论(1) 收藏 举报  分类: Linux(44)   ansible 版权声明:本文为博主原创文章,未经博主允许不得 ...

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

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

  4. Ansible常用模块命令

    Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...

  5. Ansible常用模块介绍及使用&lpar;2&rpar;

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

  6. Saltstack常用模块及API

    Saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能.常用工具支持等,更多模块信息可以查看官网模块介绍.也可以通过sys模块列出当前版本支持的模块. salt '*' sys.list_ ...

  7. Func系列2:常用模块及API

    简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).Fil ...

  8. Saltstack系列3:Saltstack常用模块及API

    说明 salt '*' sys.list_modules #列出当前版本支持的模块 API原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现 ...

  9. ansible常用模块入门

    常用模块有以下几个 command copy shell crond yum service setup 1.command模块 ansible george -m command -a " ...

随机推荐

  1. JQuery图片轮播滚动效果&lpar;网页效果--每日一更&rpar;

    今天,带来的是一个图片的轮播滚动效果! 先来看一下效果展示:亲,请点击这里 原理很简单,设置一个定时器,使图片列表在每隔一段时间后滚动一次.而循环效果,就是在每一滚动的时候,将第一张图片放到最后一张的 ...

  2. Fragment在xml中但作用不是显示view

    2013-12-17 有时候会发现在xml文件中有使用fragment,但是却不是为了显示View,代码如下: <FrameLayout xmlns:android="http://s ...

  3. (转载)总结一下SQL语句中引号&lpar;&&num;39&semi;&rpar;、quotedstr&lpar;&rpar;、&lpar;&&num;39&semi;&&num;39&semi;&rpar;、format&lpar;&rpar;在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中 ...

  4. mybatis随笔四之MapperProxy

    在上一篇文章我们已经得到了mapper的代理对象,接下来我们对demoMapper.getDemo(1)这种语句进行分析.由于返回的mapper是个代理对象,因此会进入invoke方法,接下来我们来看 ...

  5. OpenOCD的概念,安装和使用

    概念: OpenOCD是一个运行于PC上的开源调试软件,它可以控制包括Wiggler之内的很多JTAG硬件:我们可以将它理解为一种GDB服务程序.OpenOCD的源码只能通过SVN下载,地址是:svn ...

  6. python doc格式转文本格式

    首先python是不能直接读写doc格式的文件的,这是python先天的缺陷.但是可以利用python-docx (0.8.6)库可以读取.docx文件或.txt文件,且一路畅通无阻. 这样的话,可以 ...

  7. &lbrack;转帖&rsqb;SAP一句话入门:Project System

    SAP一句话入门:Project System http://blog.vsharing.com/MilesForce/A621279.html 这是SAP ERP入门的最后一篇了. 我们这些死跑龙套 ...

  8. 《Linux内核原理与分析》第二周作业

    反汇编一个简单的C程序 1.实验要求 使用: gcc –S –o test.s test.c -m32 命令编译成汇编代码,对汇编代码进行分析总结.其中test.c的具体内容如下: int g(int ...

  9. 什么是Apache Flink

    大数据计算引擎的发展 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop.Storm,以及后来的 Spark,他们都有着各自专注的应用场景.Spark 掀开了内存计算的先河, ...

  10. flex设置默认字体为微软雅黑

    必须使用英文名称 Microsoft YaHei 否则有些系统不识别