您的位置:首页 > 运维架构

Devops关键工具及技术(八)—基于Pipeline的Ansible自动化部署[一](Ansible容器化)

2018-10-26 22:13 731 查看

前两篇文章中,我们将Jmeter进行了容器化,并将容器化后的Jmeter加入到Jenkins的Master节点中,从而使得Jmeter性能测试与Pipeline进行了集成。
两篇文章链接见下:
Devops关键工具及技术(七)—基于Pipeline的Jmeter性能测试(Jmeter容器化)
Devops关键工具及技术(七)—基于Pipeline的Jmeter性能测试(Jmeter性能测试的流水线集成)

在此之前,自动化测试、性能测试都成为Pipeline的一部分。并且在此之前还有Bash部署。然而对于部署来说的话,面对集群式部署,多节点部署,简单的Bash部署的能力在实际的应用软件部署中是远远不够的。所以我们必须要引入新的部署方式,也就是今天我们要介绍的Ansible。

因为我们目的是Ansible能够集成Pipeline。所以我们要像之前的自动化测试以及性能测试一样将Ansible容器化。

本篇我们将先介绍Ansible自动化部署的容器化。
以下所有的文件代码都可以在Github找到:
https://github.com/zbbkeepgoing/containerization

容器化

Ansible容器化的目的和自动化测试、性能测试容器化一样,是为了能够将Ansible加入到我们的Jenkins中成为一个 节点,这样Ansible将会很容易地集成到我们pipeline流水线中。
下面是Ansible的Dockerfile文件

FROM centos:centos7

ENV http_proxy http://192.168.88.130:8118   //配置代理
ENV https_proxy http://192.168.88.130:8118   //配置代理

RUN yum clean all && \
yum -y install epel-release && \
yum -y install PyYAML python-jinja2 python-httplib2 python-keyczar    python-paramiko python-setuptools git python-pip java-1.8.0-openjdk* maven sshpass  //安装必要软件
RUN mkdir /etc/ansible/
RUN echo '[local]\nlocalhost\n' > /etc/ansible/hosts
RUN mkdir /opt/ansible/
RUN git clone -b stable-2.3 http://github.com/ansible/ansible.git /opt/ansible/ansible   //拉去ansible代码
WORKDIR /opt/ansible/ansible
RUN git submodule update --init
ENV PATH /opt/ansible/ansible/bin:/bin:/usr/bin:/sbin:/usr/sbin   //设置ansible环境变量
ENV PYTHONPATH /opt/ansible/ansible/lib
ENV ANSIBLE_LIBRARY /opt/ansible/ansible/library
ENV ANSIBLE_HOST_KEY_CHECKING=False

ENV http_proxy ""    //取消代理设置
ENV https_proxy ""   //取消代理设置

根据Dockerfile进行镜像的构建

docker build -t ansible:latest.

构建完成后运行

docker run --name ansible -it -d ansible:latest

测试

  • 测试Ansible容器化是否成功
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d9cefb842681        ansible:latest      "/bin/bash"         4 seconds ago       Up 1 second                             ansible
[root@localhost ~]# docker exec -it ansible sh
sh-4.2# ansible --version
ansible 2.3.4.0 (stable-2.3 b20520f500) last updated 2018/09/29 02:26:49 (GMT +000)
config file =
configured module search path = [u'/opt/ansible/ansible/library']
python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
sh-4.2#

以上即是Ansible容器化的内容,后面将会利用容器化后的镜像与Jenkins、Pipeline结合进行Ansible自动化部署的集成

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: