Jenkins+gitlab+ansible实现自动化部署
主机:172.16.13.218项目:icrm-weixin-backend1. 安装jenkins进入jenkins官网:https://jenkins.io/download/ ,下载 Jenkins 2.73 的war包。进入tomcat官网:http://tomcat.apache.org/download-80.cgi ,下载 tomcat 的.tar.gz(我下载的版本为apache-
·
主机:172.16.13.218
项目:icrm-weixin-backend
1. 安装jenkins
进入jenkins官网:https://jenkins.io/download/ ,下载 Jenkins 2.73 的war包。
进入tomcat官网:http://tomcat.apache.org/download-80.cgi ,下载 tomcat 的.tar.gz(我下载的版本为apache-tomcat-8.5.16.tar.gz)。
连接218服务器,输入(命令:rz)将下载的压缩包上传到218服务器上。
解压tomcat的压缩包
tar xvzf apache-tomcat-8.5.16.tar.gz
然后把jenkins.war放在tomcat的解压目录的webapps下面
然后进入tomcat的bin目录,运行startup.sh。
因为218服务器上8080端口被占用,所以修改了Tomcat的端口号。(在tomcat的conf目录下的server.xml文件)
修改的端口号为:8090。
修改完端口号再次启动tomcat,在浏览器里面输入http://172.16.13.218:8090/jenkins/ ,因为已经创建过几个项目,所以会看到以下界面。
第一次启动的时候,需要注册用户和密码,因为我之前已经注册过了,这里就没演示了。不过第一次启动之后需要配置一些工具才能实现发布和打包的动作。
jenkins界面下选择 (系统管理——Global Tool Configuration)
然后添加以下工具 ( jdk ,git ,maven),我选择的是自动安装。
安装工具之后,就可以创建项目了。
填写信息
此处写的token,git上面会用到。
2.git配置
找到需要配置自动部署的项目,点击(配置)
首先需要主程序员权限才能看到下面界面,选择(集成),填写(url)
点击测试,会触发jenkins的远程构建。
构建完成之后,可以查看 构建信息(Console Output)
3. 安装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命令。
更多推荐
已为社区贡献1条内容
所有评论(0)