ansible 自动化(3)

批量执行playbooks

远程批量命令执行的另外一种方式是用playbooks;
这里是playbooks的官方文档:http://docs.ansible.com/playbooks.html
这里有ansible的playbooks示例:https://github.com/ansible/ansible-examples

在python中使用ansbile API

以上执行ansible模块的方式都是在命令行中直接调用,如果对返回结果需要进一步处理,可以在程序中通过API调用的方式来使用ansible模块:
比如,以上在命令行中调用scripts的模块的方式在API中调用:

import ansible.runner
results = ansible.runner.Runner(
pattern=‘myservers‘, forks=5,
module_name=‘script‘, module_args=‘/opt/app/target.sh‘,
).run()

这里是官方给出的一个详细示例,直接运行一次,将result全部打印出来,会有直观的了解:

#!/usr/bin/python

import ansible.runner
import sys

# construct the ansible runner and execute on all hosts
results = ansible.runner.Runner(
pattern=‘*‘, forks=10,
module_name=‘command‘, module_args=‘/usr/bin/uptime‘,
).run()

if results is None:
   print "No hosts found"
   sys.exit(1)

print "UP ***********"
for (hostname, result) in results[‘contacted‘].items():
if not ‘failed‘ in result:
print "%s >>> %s" % (hostname, result[‘stdout‘])

print "FAILED *******"
for (hostname, result) in results[‘contacted‘].items():
if ‘failed‘ in result:
print "%s >>> %s" % (hostname, result[‘msg‘])

print "DOWN *********"
for (hostname, result) in results[‘dark‘].items():
print "%s >>> %s" % (hostname, result) 
时间: 2024-12-25 13:58:19

ansible 自动化(3)的相关文章

Ansible自动化运维(一)

一.ansible自动化运维 二.ansible安装 1.基本软件安装 (1)安装python-2.7.8 cd python-2.7.8 ./configure --prefix=/usr/local && make && make install #如果ansible找不到python头文件的话,将Pytho头文件复制到标准目录 cp -a /usr/local/include/python2.7/* /usr/local/include #修改/usr/bin/yum

实战:ansible自动化部署nginx+keepalived+mysql负载均衡集群

一.目的 使用ansible自动化部署nginx+keepalived+mysql负载均衡集群. 二.拓扑规划 三.详细步骤 1.环境的搭建 (1).安装ansible,同时配置私钥免密码进行通信 [[email protected] ~]# ssh-keygen  -t rsa #-t表示使用的加密类型,其中rsa1表示version1版本,rsa.dsa.ecdsa的加密对于的是version2版本 Generating public/private rsa key pair. #这里询问你

ansible 自动化安装apache

ansible 自动化配置安装apache 一.准备工作 1.下载httpd.php.mysql ,我本次实验使用的版本如下: http     2.4.17 php      5.6.15 mysql    5.6.19  二进制版本 apr      1.5.2 apr-util 1.5.4 libiconv 1.14 2.在ansible服务端开始安装 编译安装apr #cd /usr/local/src #tar xf apr-1.5.2.tar.gz #cd apr-1.5.2 #./

ansible自动化安装lnmp

今天尝试用ansible自动化编译安装了lnmp环境,是以把自己的见解和大家分享,不足之处还望大家指正. lnmp的构成 lnmp = linux + nginx + mysql + php/python/perl 下面给大家介绍下我的安装步骤 系统:linux7 首先下载lnmp环境所需模块,创建ansible角色 # mkdir -pv /tmp/roles/{mysql,php,nginx}/{files,vars,templates,tasks,handlers,meta} # cd /

Ansible自动化部署corosync+pacemaker高可用实现httpd

一.ansible简介 ansible是2012年出现的自动运维工具,基于python开发,集合了众多工具的优点,可以实现批量系统配置.批量程序部署.批量运行命令.批量配置文件修改等功能.最主要的是ansible是基于多模块工作的,而且ansible是无需客户端安装就可以基于ssh实现管理节点的,是轻量级的自动化运维工具,ansible是个框架,主要包括以下几个组件: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:设置管理的

Ansible自动化运维工具-上

[Ansible特点] 1)Ansible与saltstack均是基于Python语言开发的 2)安装使用简单,基于不同插件和模块实现各种软件,平台,版本的管理以及支持虚拟容器多层级的部署 3)不需要安装客户端,ansible基于SSH远程管理,不需要为配置工作添加额外的支持: PS:很多认为Ansible工具执行效率慢,其原因是SSH服务慢,我们可以选择优化SSH连接速度以及Ansible加速模块 [Ansible自动化管理工具特点] #轻量级,更新时,需要在操作机上进行一次更新即可 #采用S

Ansible自动化配置实战

Ansible自动化配置实战 1.Ansible基本概述 ? Ansible是一个配置管理系统configuration management system你只需要可以使用ssh访问你的服务器或设备就行. 2. Ansible能做什么 ? ? ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作. ? 比如:同时在100台服务器上安装nginx服务,并在安装后启动服务. ? 比如:将某个文件一次性拷贝到100台服务器上. ? 比如:每当有新服务器加入工作环境时,你都要为新服

Jenkins+Gitlab+Ansible自动化部署(六)

Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs.com/zd520pyx1314/p/10249094.html) 环境准备 编写ansible playbook脚本实现Wordpress远程部署 将wordpress源码与playbook部署脚本提交到gitlab仓库 编写pipeline job脚本实现Jenkins流水线持续交付流程 Jen

ANSIBLE自动化工具

ANSIBLE自动化工具 ansible相关文件 rpm包安装:EPEL源 配置文件 /etc/ansible/hosts #管理主机的清单 /etc/ansible/roles/ #存放角色的目录 /etc/ansible/ansible.cfg #主配置文件,配置ansible工作特性,一般默认就好 程序 /usr/bin/ansible #主程序,临时命令执行工具 /usr/bin/ansible-doc #查看配置文档,模块功能查看工具 /usr/bin/ansible-galaxy #

项目部署与ansible自动化部署

目录 项目部署与ansible自动化部署 一.项目部署 二.ansible自动化部署(python自动化运维) 1.安装ansible 2.ansible例子 3.ansible自动化部署nginx 项目部署与ansible自动化部署 一.项目部署 # 1.将项目的压缩包拖入xshell # 2.从数据库中导出sql文件,拖入xshell # 3.启动数据库服务,进入mysql数据库 # 4.在Linux中建立数据库 mysql> create database bbs charset utf8