playbook

Python+Django+Ansible Playbook自动化运维项目实战 学习 教程

你说的曾经没有我的故事 提交于 2019-12-01 11:44:53
Python+Django+Ansible Playbook自动化运维项目实战 学习 教程 一、入门引导 DevOPS DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。 Django python 自动化资产扫描发现 基础 paramkio登录扫描 pexpect登录扫描 telnetlib端口扫描 nmap存活扫描 资产扫描作用 进阶 SDK调用扫描ESXI snmp网路设备 KVM虚拟机扫描 docker容器扫描 ansible 自动化任务 ansible安装 python ansible ansible adhoc ansible playbook 核心类调用 进阶 api接口封装 方法改写 Redis消息存储 Mongo事件日志 二、工程初识和环境搭建 1、自动化工程总体设计 资产的自动化扫描发现 用python程序扫描发现企业内部的所有资产,当资产出现变动能自动及时发现并完成资产变更. 如:ip,硬件型号,SN,MAC,系统版本 ansible的自动化任务执行 使用ansible的ad-hoc和playbook实现批量主机的自动化任务 2

playbook

你说的曾经没有我的故事 提交于 2019-12-01 07:51:57
七种武器 1.第一种武器 ansible 命令,用于执行临时性的工作,必须掌握 2.第二种武器 ansible-doc是ansible模块的文档说明,针对每个模块都有详细的说明及应用案例介绍,功能和linux系统 man命令类似类似,必须掌握 3.第三种武器 ansible-console 是ansible为用户提供的交互式工具,用户可以在ansible-console虚拟出来的终端上像shell一样使用ansible 内置的各种命令,这为习惯使用shell交互式的用户提供了良好的使用体验 4.第四种武器 ansible-galaxy 从github上下载管理roles的一款工具,与python的pip类似 5.第五种武器 ansible-playbook是日常使用频率最高的命令,工作机制:通过读取编写好的playbook文件实现批量管理 可以理解为按一定条件组成的ansible任务急,必须掌握 6.第六种武器 ansible-vault 主要用于配置文件加密,如编写的playbook文件中包含敏感信息,不想其他人随意查看,可用它加密,解密这个文件 7.第七种武器 ansible-pull ansible有两种工作模式pull/push ,默认使用push模式工作,pull和push工作模式机制刚好相反 适用场景:有大批量机器需要配置,即便使用高并发线程依旧要花费很多时间

Ansible Roles角色

早过忘川 提交于 2019-12-01 07:46:15
Roles小技巧: 1.创建roles目录结构,手动或使用ansible-galaxy init test roles 2.编写roles的功能,也就是tasks。 nginx rsyncd memcached 3.最后playbook引用roles编写好的tasks mkdir /root/roles/nginx/{tasks,templates,handlers} ##tasks [root@manager ~]# cat /root/roles/nginx/tasks/main.yml - name: Install Nginx Server yum: name: nginx state: present - name: Configure Nginx Server template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf notify: Restart Nginx Server - name: Systemd Nginx Server systemd: name: nginx state: started enabled: yes ##template [root@manager roles]# cat /root/roles/nginx/templates/nginx.conf.j2 user www; worker

Ansible - playbook 概要

风流意气都作罢 提交于 2019-11-30 07:46:29
概述 简单描述 ansible playbook 1. playbook 概述 ansible 的 "脚本" 场景 ansible 单条命令, 执行一个操作 问题 如果执行多个操作, 要怎么办 如果需要逻辑, 和其他组合, 要怎么办 解决 ansible-playbook 一个简单的 playbook playbook01.yml --- - hosts: servers tasks: - name: ping test ping: 解释 格式 这个文本, 使用的是 yml 格式 yml 格式本身不难, 但是我目前也不太熟练, 暂时就不讲解 百度很多, 一搜就出来了 标志开头 本身没有实际意义 如果遇到多个 ansible 脚本, 则可以标记开头, 做分割 hosts: servers hosts 必填字段 目标主机 servers 准备 在 inventory 文件里有描述 或者指定自己的 inventory 文件 tasks 任务列表 必填字段 下面以 数组 的形式包含任务 task: name 任务名称 非必填字段 目的就是注释, 在执行的时候, 会显示 task: ping 模块名称 ping 没有参数, 后面就为空 执行 命令 > ansible-playbook -i hosts playbook01.yml 结果 PLAY [servers] ************

ansible

大憨熊 提交于 2019-11-30 02:17:59
介绍 一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,它是基于python语言,由Paramiko和PyYAML两个关键模块构建。集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents, 因为它们是基于ssh来和远程主机通讯的. 功能 确保所依赖的软件包已经被安装 配置文件包含正确的内容和正确的权限 相关服务被正确运行 常见的自动化运维工具区别 组成 特点 部署简单, 只需要在控制主机上部署ansible环境,被控制端上只要求安装ssh和python 2.5以上版本,这个对于类unix系统来说相当与无需配置. no angents: 被管控节点无需安装agent no server: 无服务端,使用是直接调用命名 modules in any languages: 基于模块工作, 可以使用任意语言开发模块 易读的语法: 基于yaml语法编写playbook 基于推送模式: 不同于puppet的拉取模式,直接由调用者控制变更在服务器上发生的时间 模块是幂等性的

Ansible基本原理

半城伤御伤魂 提交于 2019-11-29 08:27:17
一、ansible介绍与安装使用 1、ansible介绍与特点 ansible是一款自动化运维工具,基于Python开发,可以实现批量系统设置、批量程序部署、批量执行命令等功能。特点如下: Ansible完全基于Python开发,要求python的版本为2.6以上。 Ansible丰富的内置模块,近600个模块完全满足日常功能所需 Ansible默认通过SSH协议管理机器,因此,客户端无需任何配置,管理端配置好后即可使用。 Ansible目前属于Redhat公司,最新版本为Ansible2.5。 2、ansible的应用环境 应用代码自动化部署 系统管理配置自动化 支持持续交付自动化 支持云计算,大数据平台环境 批量任务执行可以写成脚本,不用分发到远程就可以执行 支持非root用户管理操作,支持sudo 使用python编写,维护更简单。 3、ansible的安装 这里的安装环境是centos7.4版本操作系统,首先需要安装第三方epel源: [root@ACA8D5EF ~]# yum install epel-release Ansible依赖python环境,同时已经是RHEL/Centos的一个组成部分,因此推荐通过yum安装ansible: [root@ACA8D5EF ~]# yum install ansible 4、ansible的命令套件 安装完ansible后

2019/03/25 实现playbook高级用法

坚强是说给别人听的谎言 提交于 2019-11-29 04:56:58
: 不管当前客户端情况如何,都默认按照次序执行,这样次序执行就会造成问题,如果更新了配置文件,将来复制了配置文件,将服务启动起来,结果再次更新配置文件,再用playbook执行,配置文件是更新了,但是由于服务已经启动,就不会重启了 handler和task是平级关系,监控task的action动作,其中一个动作执行成功了,将会出发handlers的定义的一些命令, 需要配合,notify通知, handler处理操作(触发器) 希望某个操作发生变化了,希望通知handler来触发操作 把配置文件放到files,可以作为相对路径 修改配置文件 之前因为都安装了,所以这次先卸载 -C试着检查跑一次 端口正常启动 现在修改配置文件 重新执行,配置文件进行修改,服务已经启动,就不会再重启了 依然是80端口 现在想如果配置文件改变,服务会自动重启,需要借助handler实现 再执行一次(需要再改一次配置文件 现在重启,9527端口成功开启 当配置文件复制过去,重启服务,检查服务是否正常启动 killall -0探测此服务是否成功启动,如果返回非0 ,就说明nginx服务有问题 加标签效果,就是将来可以调用标签内容,通过标签指定关键字来调用它,可以单独的只执行标签 把服务停了 可以单独的只执行标签 确认9527端口没有了 可以挑着标签执行 也可以针对多个标签都执行 验证包是否成功卸载

2019/03/26 ansible使用template

怎甘沉沦 提交于 2019-11-29 04:56:56
**ansible常见模块,和playbook编写 playbook把要执行的任务,按照一定的语法格式进行书写,定义完后按照相应的次序执行 要把执行的操作放再了tasks语句块,tasks会调用模块按照一定次序执行 playbook可以更灵活采用其他机制 变量 其他的控制方法handler notify触发器(mysql数据库也有类似的行为 变量(命令行-e指定变量名称 主机清单变量(分组,单个主机变量,单一主机优先级更高 还可以再playbook定义变量, setup模块定义了很多系统自带的变量 ** 编写变量的playbook 检查语法 gathering facts 收集facts信息,根据主机状态来决定主机后续的操作 执行成功 可以根据当前服务器的内存大小来配置 可以把ansible变量都放在一起,避免多个运维,放在不同的文件夹,管理起来比较麻烦 创建文件,只放变量 调用变量 等于调用了vars.yml的值 检查语法,tasks错误 验证是否成功 copy模块只能按照固定的值复制过去,但往往需要在不同的主机上实现不同的配置,有的主机性能好,希望针对这台主机,配置相比较好的配置,比如内存,cpu使用更多,copy模块就做不到 就可以做到模板templates nginx属于epel源 nginx有配置文件与硬件息息相关 工作进程数量 auto就是观察当前主机的cpu内核个数

Ansible的playbook的基本使用与快速入门

别等时光非礼了梦想. 提交于 2019-11-29 01:27:42
1.使用playbook有什么好处 2.认识playbook(自动部署nginx) 3.YAML语法 4.playbook文件结构 5.在变更时执行操作(handlers) 6.任务控制(tags) 7.playbook文件调试 8.案例:自动部署tomcat 9.Playbook变量定义与使用 playbok文件复用 1. 使用playbook有什么好处 Ansible真正的能力在于使用playbook,也就称为剧本 当我们在某个目录下执行某个命令的时候,那么我们可以使用ansible的ad hoc的模式快速执行,而无不虚编写文件或者剧本,但是对于配置的管理和应用的部署,通常有很多的操作,单独的去写ad hoc命令麻烦很多,而且ad hoc适用于简单命令的执行,所以我们使用playbook去完成,如果ansible是工作中用到的工具,那么ploybook就是相当于你使用ansible的说明书,而你的主机就是原材料,写playbook就像写说明书一样,它是一个按顺序执行的一个过程,playbook和ad hoc完全不是一种模式,并且功能强大 Playbook的特点 易读的编排语言:它是用最主流的yaml格式去编写的来实现应用的编排,非常适合配置和应用部署,也非常适合部署复杂的任务,我们可以通过声明式的内容将复杂的工作通过playbook进行编排。 这个—syntax

ansible总结

前提是你 提交于 2019-11-28 17:24:45
1 介绍 ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,它是基于python语言,由Paramiko和PyYAML两个关键模块构建。集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的. ansible被定义为配置管理工具,配置管理工具通常具有以下功能: 确保所依赖的软件包已经被安装 配置文件包含正确的内容和正确的权限 相关服务被正确运行 常用的自动化运维工具技术特性比较: 项目 Puppet SaltStack Ansible 开发语言 Ruby Python Python 是否有客户端 有 有 无 是否支持二次开发 不支持 支持 支持 服务器与远程机器是否相互验证 是 是 是 服务器与远程机器的通信是否加密 是,标准的SSL协议 是,使用AES加密 是,使用OpenSSH 平台支持 AIX , BSD, HP-UX, Linux , Mac OSX , Solaris, Windows BSD,