浅谈基于Ansible持续部署自动化

本文讲的是 :  浅谈基于Ansible持续部署自动化  , 【IT168技术】随着各种计算机虚拟技术的不断发展,云计算的工业化水平也日渐成熟。在新的形势下,IT运维面临着来自各个方面的挑战,维护的机器数量从数十个几百个到成千上万个,应用的结构变得越来越复杂,更新的速度也越来越快。各种自动化配置管理工具也在这种生态环境中应运而生,如puppet,saltstack,ansible。本文将用ansible来具体讨论其在不同场景下的使用方法,从而使运维和开发人员更加轻松的应对各种配置管理及应用部署需求。

  本文用ansible部署为例,着重探讨ansible作为自动化工具在各种环境下的使用,包括如下几方面内容:

  Ansible工具简介

  配置管理和应用部署自动化

  结合jenkins持续部署自动化

  小结

  1. Ansible工具简介

  1.1. 简介

  原引官方的说法“ansible是简单的自动化IT工具”。 其目的是:配置管理自动化,应用部署自动化,持续交付自动化等等。 究其根本和其他配置管理工具并没有本质区别,像个集成工具箱,可以远程发送命令给其他的服务器进行配置管理和应用部署,也可以随时通过各种编程语言进行模块扩展。它的显著特点是:

  提供一个简单可编程的流程菜单,可以按照事先定义好的逻辑来执行相关的操作,自动完成部署需求

  无需客户端或代理来远程管理服务器

  基于paramiko(Python实现的ssh协议库)完成所有的部署任务

  1.2. ansible和 ansible-playbook使用方式

  Ansible命令是ansible提供的命令行工具,基于hosts清单来使用,具体如下:

  ansible <host组名> [-f 并发数量] [-m 模块名字] [-a args] -i host清单名

  默认的Host 清单配置文件在/etc/ansible/hosts,也可以定制新的路径。内容格式与window下的.ini文件类似。

  #hosts

  [web]

  192.168.100.10

  192.168.100.11

  [db]

  192.168.100.11

  192.168.100.12

  这里定义了俩个组,服务器可以是名字也可以是IP地址,同一个服务器可以属于不同的组。

  用用户root向所有的服务器发ping命令,-k需要输入root密码,也可以现将所有服务器的密钥批量添加到本地,就可以无交互操作远程机器。

  $ ansible all -m ping -u root -k -i hosts

  SSH password:

  192.168.100.10 | success >> {

  "changed": false,

  "ping": "pong"

  }

  192.168.100.11 | success >> {

  "changed": false,

  "ping": "pong"

  }

  192.168.100.12 | success >> {

  "changed": false,

  "ping": "pong"

  }

  默认不指定-m参数的时候使用的module只是执行命令,不会用一些shell下的environment变量等设置

  copy|file--文件复制及文件属性设置

  $ansible dbservers -m copy -a "src=/etc/hosts dest=/tmp/hosts"

  $ansible webservers -m file -a "dest=/srv/foo/test.txt mode=600 owner=test group=test"

  git--使用git指定服务器

  $ansible webservers -m git -a "repo=git://test.example.org/repo.git dest=/srv/myapp version=HEAD"

  service--对指定服务操作

  ansible webservers -m service -a "name=httpd state=started"

  命令行工具提供简单任务操作,实际部署应用常常需要很多操作。ansible-playbook则可以按照一定先后顺序和逻辑关系事先定义好所有操作,然后一次完成所有的部署任务。

  如下例部署apache服务:

  ---

  - hosts: webservers

  vars:

  http_port: 80

  max_clients: 200

  remote_user: root

  tasks:

  - name: ensure apache is at the latest version

  yum: pkg=httpd state=latest

  - name: write the apache config file

  template: src=/srv/httpd.j2 dest=/etc/httpd.conf

  notify:

  - restart apache

  - name: ensure apache is running

  service: name=httpd state=started

  handlers:

  - name: restart apache

  service: name=httpd state=restarted

  说明:在所有的webservers服务上以root身份按照最新的httpd,用httpd.j2做模板配置新的服务,配置之后重启httpd服务。

  执行playbook命令即可完成所有部署,“-f 10”表示一次最多可同时在10个服务器上执行:

  $ ansible-playbook playbook.yml -f 10

  2. 配置管理和应用部署自动化

  简单介绍之后,我们对ansible的使用方式有了大概的了解。接下来将用几个实例来具体展示ansible在不同场景下的使用模式。

原文发布时间为:2015年7月6日

本文作者: 曲家富

原文标题 :浅谈基于Ansible持续部署自动化

时间: 2024-10-29 17:43:49

浅谈基于Ansible持续部署自动化的相关文章

浅谈大规模Hadoop集群自动化部署与运维

文章讲的是浅谈大规模Hadoop集群自动化部署与运维,2013年11月22-23日,作为国内唯一专注于Hadoop技术与应用分享的大规模行业盛会,2013 Hadoop中国技术峰会(China Hadoop Summit 2013)于北京福朋喜来登集团酒店隆重举行.来自国内外各行业领域的近千名CIO.CTO.架构师.IT经理.咨询顾问.工程师.Hadoop技术爱好者,以及从事Hadoop研究与推广的IT厂商和技术专家将共襄盛举. ▲IT168专题报道:http://www.it168.com/r

江南天安邓小四:浅谈基于国产商用密码技术在云计算中的应用

在第八届中国云计算大会上,参会者.包括笔者自己都深有感触的一点就是,云计算大会越来越"接地气",讨论的内容早已从讨论云计算概念和技术,到如今的"用实际应用说话"的阶段了,同时,云计算实践的一线厂商的积极参与,让我们看到了云计算现在开始慢慢凸显的能力和价值. 在本届云计算大会上,云计算大数据安全论坛盛况空前,论坛聚焦云计算大数据安全话题,邀请了云计算大数据安全专家.云安全提供方及云计算用户.白帽子现身说法,一起交流云计算大数据安全的实践经验.随着云计算在企业的应用加快

浅谈基于OpenSSL安全会话的实现

一.概述SSL SSL(Secure Socket Layer)安全套接字层,早期netscape公司想让工作在应用层中的各种协议在传输数据实现数据安全的目的,在应用层与tcp层之间引入的半层结构:SSL不仅是一种协议,也是一个库,能够实现让应用层的某种协议传输数据到tcp层之前调用SSL的功能:比如:应用层的HTTP.SMTP.FTP等协议到tcp层之前经过SSL的调用,在tcp层以HTTPS.SMTPS.FTPS形式传输数据:现在主流的版本是SSLv2.SSLv3. 二.了解OpenSSL

老网工: 浅谈SDN技术的部署和未来

进入2017年,基于SDN的解决方案再次成为最热门的话题之一, 从运营商.到OTT再到大的企业都已经开始大谈SDN网络规划和部署,甚至WannaCry蠕虫爆发时有人谈到利用SDN的方法抵御.但是由于SDN的特殊性和网络具体环境的复杂性,不同客户SDN的部署实际上千差万别,作为从事网络领域20年的老网工深深感受到SDN与传统网络的巨大变化,在这里和大家分享一下SDN的部署经验和艰辛,抛砖引玉谈谈个人体会. 首先声明一点,今天讨论的SDN不再局限于传统的狭义SDN,传统的狭义SDN(基于Openfl

浅谈基于关系的社区平台成功的三要素

我故意回避了用SNS这个说法,原因在于对于SNS现在大家脑子里已经装满了开心网和基于UCH的印象.我觉得任何社区平台,尤其是基于关系的社区平台,不在于你是专注新识还是旧友,不在于networking还是network,有生命力的社区平台,能够形成自主的生命力,进入一种良性的循环.但是这种良性循环是如何建立起来的呢?需要具备什么样的条件呢?我认为核心在于要解决好三个要素的关系.这三个要素就是: 价值--关系--平台 这三个要素必须是一种强的依赖关系,即为用户提供的核心价值必须是依赖于关系的价值:关

浅谈公共云应用部署

掌握各种应用在设计上的特点可以帮助我们确认它是否适合于云计算,云计算提供了一种具备高度灵活性的架构,可以根据需求方便地进行创建.撤消.配置更改.扩展和收缩等动作.但是并非所有应用都是为云模式而专门设计的. 接下来我们重点关注公共云,National Institute of Standards and Technology对它的定义是:云架构向普通大众或某个大型产业群体开放,并通过某个组织来销售云服务. 把应用迁移或直接部署在"云"里是非常明智的商业行为,但前提是能确保成功.在进入云之

浅谈下载类网站部署推广

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 今天笔者通过关键字"张家界online",查看<张家界online>游戏推广百度收录情况的时候,发现某大型软件下载平台上面出现了"张家界online web"下载界面.通过查过推广记录和询问推广团队,并没有发现我们的推广团队有类似的软件下载网站部署推广.通过在该网站上面下载所谓的"

浅谈基于SQL Server分页存储过程五种方法及性能比较

在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userName nvarchar(20) not null, userPWD nvarchar(20) not null, u

自动化工具后起之秀Ansible的部署实践

本文讲的是自动化工具后起之秀Ansible的部署实践,从早期手动加脚本的部署方式,到后来自动化工具(chef, puppet, saltstack, ansible等)的出现,再到如今DevOps的盛行,企业应用部署正式进入平台部署阶段,CD(持续部署)已经成为企业对应用部署的标准需求,运维的交付也不再是以周或天为单位,而是以分钟为单位. 本文主要介绍自动化工具Ansible,及其在普元DevOps平台中的应用部署和日常应用部署中的实践. 本文目录: 一.如何选择合适的自动化工具? 二.Ansi