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自动化部署的集成
阅读更多相关文章推荐
- Devops关键工具及技术(八)—基于Pipeline的Ansible自动化部署[二](Ansible自动化部署的流水线集成)
- 自动化工具Ansible:基于Jenkins+Ansible+GitLab的部署实践
- 自动化运维集中式管理工具saltstack的基于各个平台的部署
- 自动化运维工具ansible部署以及使用
- 自动化服务安装部署工具-Ansible
- 自动化运维工具Ansible详细部署
- 自动化运维工具Ansible实战(一)安装部署
- 自动化运维工具Ansible部署详解与基本使用
- 自动化运维工具Ansible详细部署
- 自动化运维工具Ansible详细部署
- 自动化运维工具Ansible实战(一)安装部署
- CentOS下部署ansible自动化工具
- 自动化运维工具Ansible详细部署
- 基于Rancher+阿里云Code构建的DevOps自动化部署
- 自动化部署工具——Ansible探索
- 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客
- 自动化运维工具Ansible详细部署
- 自动化运维工具Ansible详细部署
- 自动化运维工具Ansible详细部署
- Windows平台自动化测试工具基于的一些技术简介(笔记)