天天看点

Jenkins + Ansible + Gitlab之ansible篇

注:学习本篇博文之前最好将Jenkins + Ansible + Gitlab 之gitlab学习最少一遍

注:关于Ansible的详细内容请看我的另一篇博文自动化运维之ansible

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的优势和应用场景

轻量级无客户端(Agentless)

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

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

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

强大的稳定性和兼容性

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

Ansible配合virtualenv安装配置

Jenkins + Ansible + Gitlab之ansible篇

Ansible的两种安装模式(Centos7)

1.Yum包管理安装

       yum  -y   install   ansible

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

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

Ansible 2.5 + Python3.6 安装步骤【Centos7】

1.预先安装Python3.6版本

2.安装virtualenv

      pip install virtualenv

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

     useradd deploy && su - deploy

     virtualenv -p /usr/local/bin/python3.6  .py3-a2.5-env

4. Git源代码安装ansible2.5

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

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

     cd ansible && git checkout stable-2.5

5. 加载python3.6 virtualenv 环境

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

6.安装ansible依赖包

    pip install paramiko PyYAML jinja2

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

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

8.验证ansible2.5

    ansible --version

演示

前提工作

Jenkins + Ansible + Gitlab之ansible篇

安装Python3.6和Virtualenv

Jenkins + Ansible + Gitlab之ansible篇

创建ansible系统账户并在该系统账户下安装python3.6版本的Virtualenv实例

Jenkins + Ansible + Gitlab之ansible篇

安装git

Jenkins + Ansible + Gitlab之ansible篇

出现的一个错误

Jenkins + Ansible + Gitlab之ansible篇

加载vintualenv环境

Jenkins + Ansible + Gitlab之ansible篇

完成

Jenkins + Ansible + Gitlab之ansible篇

Ansible playbooks入门和编写规范

Playbooks框架与格式

Test Playbooks

Jenkins + Ansible + Gitlab之ansible篇

详细目录testenv

Jenkins + Ansible + Gitlab之ansible篇

主任务文件main.yml

Jenkins + Ansible + Gitlab之ansible篇

任务入口文件deploy.yml

Jenkins + Ansible + Gitlab之ansible篇

Playbooks编写规范

Jenkins + Ansible + Gitlab之ansible篇

演示

写剧本

Jenkins + Ansible + Gitlab之ansible篇

免密钥登陆

Jenkins + Ansible + Gitlab之ansible篇

完成并验证

Jenkins + Ansible + Gitlab之ansible篇

Ansible Playbboks常用模块

Ansible Playbook 常用模块介绍

File模块

     在目标主机创建文件或目录,并赋予其系统权限

Jenkins + Ansible + Gitlab之ansible篇

Copy模块

     实现Ansible服务器到目标主机的文件传送

Jenkins + Ansible + Gitlab之ansible篇

Stat模块

    获取远程文件状态信息

Jenkins + Ansible + Gitlab之ansible篇

Debug模块

    打印语句到Ansible执行输出

Jenkins + Ansible + Gitlab之ansible篇

Command/Shell模块

    用来执行Linux目录主机命令行

Jenkins + Ansible + Gitlab之ansible篇

Template模块

    实现Ansible服务端到目标主机的jinja2模块传送

Jenkins + Ansible + Gitlab之ansible篇

Packaging模块

     调用目标主机系统包管理工具(yum , apt)进行安装

Jenkins + Ansible + Gitlab之ansible篇

Service模块

     管理目标主机系统服务

Jenkins + Ansible + Gitlab之ansible篇

Ansible Playbooks常用模块应用

Jenkins + Ansible + Gitlab之ansible篇

演示

目标主机预配置工作

Jenkins + Ansible + Gitlab之ansible篇
Jenkins + Ansible + Gitlab之ansible篇
Jenkins + Ansible + Gitlab之ansible篇
Jenkins + Ansible + Gitlab之ansible篇
Jenkins + Ansible + Gitlab之ansible篇

注:如需笔记原稿请评论留言,我私发

注:如需视频资源请评论留言,我免费私发

继续阅读