Jenkins+Ansible+Gitlab自动化部署三剑客(二)--ansible

Ansible简介

Ansible是一个开源部署工具

开发语言:python

特点:SSH协议通讯,全平台,无需编译,模块化部署管理

作用:推送Playbook进行远程节点快速部署

Ansible与Chef,Saltstack的区别

Chef

  Ruby语言编写,C/S架构,配置需要Git依赖,Recipe脚本编写规范,需要编程经验

Saltstack

  Python语言编写,C/S架构,模块化配置管理,YAML脚本编写规范,适合大规模集群部署

Ansible

  Python语言编写,无Client,模块化配置管理,Playbook脚本编写规范,易于上手,适合中小规模快速部署

Ansible优势

ansible优势

轻量级无客户端(Agentless)

开源免费,学习成本低,快速上手

使用Playbook作为核心配置架构,同一的脚本格式批量化部署

完善的模块化扩展,支持目前主流的开发场景

强大的稳定性和兼容性(开发语言为系统默认自带的python,通讯工具为系统默认自带的ssh)

活跃的官方社区问题讨论,方便Trubleshooting与DEBUG问题

Ansible配合virtualenv安装配置

Ansible的两种安装模式(Centos7)

1.yum包管理安装

  # yum -y install ansible

2.Git源代码安装【推荐】

  # git clone https://github.com/ansible/ansible.git

Ansible2.5 + Python3.6安装步骤(Centos7)

准备工作

 安装步骤

1.预先安装Python3.6版本

  # wget http://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

  

  #tar xf Python-3.6.5.tar.xz

  

  #  yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

  # ./configure --prefix=/usr/local/python3

  
   #  make &&  make altinstall

  

  # which pip3.6

  

2.安装virtualenv

  # pip install virtualenv

  

3.创建Ansible账户并安装python3.6版本virtualenv实例

  # useradd deploy && su - deploy

  

  # virtualenv -p python3.6 .py3-a2.5-env

  

  # yum -y install git nss curl   # 检查是否安装了git,没有则切换到root安装

4.Git源代码安装ansible2.5

  # cd /home/deploy/.py3-a2.5-env

  # git clone https://github.com/ansible/ansible.git

  

5.加载python3.6 virtualenv环境

  # source /home/deploy/.py3-a2.5-env/bin/activate

  

  # ch ansible && git checkout stable-2.5

  

6.安装ansible依赖包

  # pip install paramiko PyYAML jinja2

  

7.在python3.6虚拟环境下加载ansible2.5

  # source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

  

8.验证ansible2.5

  # ansible --version

  

Ansible playbooks入门和编写规范

playbooks框架及格式

playbooks编写规范

 

主任务文件main.yml

 任务入口文件deploy.yml

SSH免秘钥认证

Ansible服务器端创建SSH本地秘钥

# ssh-keygen -t rsa

Ansible服务器端建立与目标部署机器的秘钥认证

# ssh-copy-id -i /home/deploy/.ssh/id_rsa.pub [email protected]

执行playbooks

Ansible playbooks常用模块介绍

Ansible playbooks常用模块案例操作

原文地址:https://www.cnblogs.com/bk770466199/p/12259007.html

时间: 2024-08-01 11:29:13

Jenkins+Ansible+Gitlab自动化部署三剑客(二)--ansible的相关文章

Jenkins+Ansible+Gitlab自动化部署三剑客

最近一直在学习Ansible的一些playbook的写法, 所以一直没有怎么更新, 想到目前大家对诸如saltstack, docker, Ansible等自动化部署相关的工具很感兴趣, 但又苦于没有可学习的中文实例, 这里我就把我这几个月所接触到目前国外比较流行的部署经验给大家分享一下. 首先给大家介绍的是Ansible, 恩, 重要的问题说三遍, 不是Saltstack, Ansible作为一个python写的自动化部署工具, 确实较之前我所接触的Chef, saltstack, puppe

Jenkins+Ansible+Gitlab自动化部署三剑客(八)--Jenkins ansible集成

Jenkins Ansible集成 准备工作 参考https://www.cnblogs.com/bk770466199/p/12259007.html完成以下准备工作 需要在jenkins服务器上,配置ansible2.5+python 3.6虚拟环境 配置jenkins.example.com主机到test.example.com主机的ssh免秘钥认证 配置ansible,创建testservers文件 1.新建项目 2.添加shell #!/bin/sh set +x source /ho

Jenkins+Ansible+Gitlab自动化部署三剑客(五)--Jenkins 参数集成

Jenkins 参数集成 1.新建项目 2.添加选项 #!/bin/sh echo "Current deploy environment is $deploy_env" echo "The build is $version" echo "The paasword is $pass" if $bool then echo "Request is approved" else echo "Request is rej

Jenkins+Ansible+Gitlab自动化部署三剑客-gitlab本地搭建

实际操作 准备linux初始环境 关闭防火墙 systemctl stop firewalld 开机自己关闭 systemctl disable firewalld 设置安全配置 为关闭 vim /etc/sysconfig/selinux 重启虚拟机 reboot 查看安全策略是否关闭 getenforce 安装gitlab依赖软件 yum install curl policycoreutils openssh-server openssh-clients postfix 下载gitlab

Linux-GitLab+Jenkins持续集成+自动化部署

GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译.发布.自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. (2)没有持续集成 项目做模块集成的时候,发现很多接口都不通==>浪费大量时间 需

centos7+docker+Jenkins+svn搭建自动化部署平台

centos7+docker+Jenkins+svn搭建自动化部署平台 1. centos7 参考链接:http://www.macrozheng.com/#/reference/linux_install tips 公司服务器配置(1T机械+256固态+i7的u) 需要我们把系统,环境(java,mysql,redis,docker等)装到固态上(速度快),我们的代码放到机械上.分区情况如下图 2. centos7中安装docker1.31.1 自行百度,此处无坑 3. centos7安装配置

CentOS 6.5环境使用ansible剧本自动化部署Corosync + pacemaker环境及corosync常用配置详解

环境说明: 192.168.8.39 node2.chinasoft.com 192.168.8.42 node4.chinasoft.com 192.168.8.40 ansible管理服务器 192.168.8.77 VIP 192.168.8.20 nfs服务器 1.双机互信需要设置好,hosts文件需要解析好,时间要同步,配置好yum源 双击互信及Hosts文件配置,参考:http://blog.csdn.net/reblue520/article/details/51213030 最好

自动化部署(二)

2 自动化部署流程设计 2.1 需求分解 一个集群有10个节点: 一键部署10个节点. 一键回滚到任意版本. 一键回滚到上个版本. 2.2 部署流程分解 2.2.1 准备 代码放在哪里? git/svn 获取什么版本的代码?svn: 指定版本号git: 指定tag 差异解决: 各个节点的配置文件差异:列如crontab.xml 只需要由一台机器来执行或者是预生产节点和生产节点的配置文件有差异. 代码仓库和实际的差异,配置文件是放在代码仓库中. 如何更新?tomcat 部署过后需要重启. 测试.

详解Ansible(Roles)自动化部署配置LAMP架构

Roles简介Ansible为了层次化.结构化地组织Playbook,使用了角色(roles).Roles能够根据层次型结构自动装载变量文件.task以及handlers等.简单来讲,roles就是通过分别将变量.文件.任务.模块及处理器放置于单独的目录中,并可以便捷地include它们,roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中.? 创建Roles 创建roles时一般需要以下步骤:首先创建以roles命名的目录.然后在roles目标下分别创建以个角色名称命令