首页 > 技术文章 > 基于jenkins自动打包并部署docker环境及ansible自动化部署

CMX_Shmily 2019-12-09 15:26 原文

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

jenkins配合ansible做自动化部署环境:

. 安装ansible


因为要实现批量部署,所以要使用自动化运维工具Ansible。


1、Ansible基础安装


(1)、python2.7安装


地址:https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz

 


tar xvzf Python-2.7.8.tgz


cd Python-2.7.8


./configure --prefix=/usr/local


make --jobs=grep processor/proc/cpuinfo | wc -l


make install

 


将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件

 


cd /usr/local/include/python2.7


cp -a ./* /usr/local/include/

 


备份旧版本的python,并符号链接新版本的python

 


cd /usr/bin


mv python python2.6


ln -s /usr/local/bin/python

 


修改yum脚本,使其指向旧版本的python,已避免其无法运行

 


vim /usr/bin/yum


!/usr/bin/python  -->  #!/usr/bin/python2.6

 


(2)、setuptools模块安装


地址:https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz

 


tar xvzf setuptools-7.0.tar.gz


cd setuptools-7.0


python setup.py install

 


(3)、pycrypto模块安装


地址:https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz

 


tar xvzf pycrypto-2.6.1.tar.gz


cd pycrypto-2.6.1


python setup.py install

 


(4)、PyYAML模块安装


地址:http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz

 


tar xvzf yaml-0.1.5.tar.gz


cd yaml-0.1.5


./configure --prefix=/usr/local


make --jobs=grep processor/proc/cpuinfo | wc -l


make install

 


地址:https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz

 


tar xvzf PyYAML-3.11.tar.gz


cd PyYAML-3.11


python setup.py install

 


(5)、Jinja2模块安装


地址:https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz

 


tar xvzf MarkupSafe-0.9.3.tar.gz


cd MarkupSafe-0.9.3


python setup.py install

 


地址:https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz

 


tar xvzf Jinja2-2.7.3.tar.gz


cd Jinja2-2.7.3


python setup.py install

 


(6)、paramiko模块安装


地址:https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz

 


tar xvzf ecdsa-0.11.tar.gz


cd ecdsa-0.11


python setup.py install

 


地址:https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz

 


tar xvzf paramiko-1.15.1.tar.gz


cd paramiko-1.15.1


python setup.py install

 


(7)、simplejson模块安装


地址:https://pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz

 


tar xvzf simplejson-3.6.5.tar.gz


cd simplejson-3.6.5


python setup.py install

 


(8)、ansible安装


地址:https://github.com/ansible/ansible/archive/v1.7.2.tar.gz

 


tar xvzf ansible-1.7.2.tar.gz


cd ansible-1.7.2


python setup.py install

 


2、Ansible配置


(9)、SSH免密钥登录设置
 生成公钥/私钥

 


ssh-keygen -t rsa -P ''
 写入信任文件(将/root/.ssh/id_rsa_storm1.pub分发到其他服务器,并在所有服务器上执行如下指令):
cat /root/.ssh/id_rsa_storm1.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

 


(10)、拷贝,生成ansible配置文件
a 配置文件/etc/ansible/ansible.cfg

 


mkdir -p /etc/ansible
cp ansible-1.7.2/examples/ansible.cfg /etc/ansible/
b 配置文件/etc/ansible/hosts
vim /etc/ansible/hosts
[test]
172.16.13.217

 


配置完成之后编写ansible脚本实现自动部署。

 


4,编写app.yaml


脚本内容


---
- hosts: test
  user: root
  tasks:
    - name: 拷贝engaged-party到目标机器
      copy: src=../../../target/engaged-party-0.1.0-SNAPSHOT.jar dest=/tmp/engaged-party-0.1.0-SNAPSHOT.jar owner=root group=root mode=0755
    - name: 关闭engaged-party进程
      shell: ps -ef|grep engaged-party|grep jar|grep -v grep |awk '{print $2}' |xargs kill -9
      ignore_errors: true
    - name: 后台启动engaged-party
      shell: nohup java -jar /tmp/engaged-party*.jar &

 

 

 

编写完成之后,放在resources目录下面。

 

 

 


修改jenkins的shell命令。

 

 

推荐阅读