Linux Ansible——通过Ansible实现批量部署jdk+Tomcat+Jenkins

news/2024/10/29 7:27:01/

通过Ansible实现批量部署jdk+Tomcat

批量 jdk及Tomcat部署、配置

[root@ansible-server src]# cat tomcat.yml 
- hosts: webserversuser: roottasks:
##配置JDK,上传jdk、tomcat的安装包到/usr/src- name: configure Jdk1.8copy: src=/usr/src/jdk-8u211-linux-x64.tar.gz  dest=/usr/src- name: unzipshell: tar -xvzf /usr/src/jdk-8u211-linux-x64.tar.gz -C /usr/local- name: rename to javashell: mv /usr/local/jdk1.8.0_211 /usr/local/java- name: configure envirement1shell: echo "JAVA_HOME=/usr/local/java" >> /etc/profile- name: configure envirement2shell: echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
##Tomcat- name: copy tomcatcopy: src=/usr/src/apache-tomcat-8.5.45.tar.gz dest=/usr/src- name: unzip tomcatshell: tar -xvzf /usr/src/apache-tomcat-8.5.45.tar.gz -C /usr/local- name: rename to tomcatshell: mv /usr/local/apache-tomcat-8.5.45 /usr/local/tomcat- name: copy startup filecopy:  src=/usr/src/startup.sh dest=/usr/local/tomcat/binnotify: start tomcathandlers:- name: start tomcatshell: nohup /usr/local/tomcat/bin/startup.sh &
[root@java-server src]# ls
apache-tomcat-8.5.45         debug                       kernels     tomcat.retry
apache-tomcat-8.5.45.tar.gz  jdk-8u211-linux-x64.tar.gz  startup.sh  tomcat.yml
[root@java-server src]# head -2 startup.sh 
#!/bin/sh
source /etc/profile

**

批量部署Jenkins

描述:
·
1.准备两台机器,一台作为nginx代理。一台为tomcat服务器。
2.tomcat服务器手动部署tomcat服务,并将webapps目录下面的内容提前删掉。
3.将jenkins.war包上传到nginx服务器。通过ansible将war包拷贝过去。并启动tomcat
4.配置nginx反向代理tomcat,实现访问jenkins。

一、tomcat服务器
1.安装jdk与tomcat略。
2.添加tomcat启动脚本中添加环境变量
[root@ansible-web2 ~]# vim /usr/local/tomcat/bin/startup.sh  #需要添加如下内容
source /etc/profile
====================================
二、nginx服务器:
1.安装nginx与ansible,上传jenkins的war包略。
2.ansible配置如下:
3.定义变量:
[root@ansible ~]# cd /etc/ansible/
[root@ansible ansible]# mkdir vars
[root@ansible ansible]# vim vars/path.yml
src_path: /root/jenkins.war
dest_path: /usr/local/tomcat/webapps/4.配置playbook:
[root@ansible ansible]# vim jenkins.yml
- hosts: webserver2user: rootvars_files:- /etc/ansible/vars/path.ymltasks:- name: copy jenkins.warcopy: src={{ src_path }} dest={{ dest_path }}- name: start tomcatshell: nohup /usr/local/tomcat/bin/startup.sh &
[root@ansible ansible]# ansible-playbook jenkins.yml5.配置nginx反向代理
[root@ansible ansible]# vim /etc/nginx/conf.d/jenkins.conf
server {listen       80;server_name  localhost;charset koi8-r;access_log  /var/log/nginx/host.access.log  main;location /jenkins {proxy_pass http://192.168.62.181:8080;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}6.启动nginx
7.检查nginx与tomcat是否启动成功!
8.访问nginx服务器http://ip/jenkins。

批量部署Jdk+Tomcat+Jenkins

将Jdk、Tomcat、Jenkins的安装包上传到ansbile控制节点的/usr/src下

[root@java-server ansible]# head -2 /usr/src/startup.sh 	//startup.sh是tomcat的启动脚本
#!/bin/sh
source /etc/profile    #加上此行,是为了启动加载到环境变量

变量文件

[root@ansible ansible]# cat /etc/ansible/vars/file.yml

在这里插入图片描述

playbook剧本

[root@ansible ansible]# cat jenkins.yml
- hosts: ansible-web1user: rootvars_files:- /etc/ansible/vars/file.ymltasks:
##配置JDK,上传jdk、tomcat的安装包到/usr/src- name: configure JDK1.8copy: src={{ src_jdk_path }}  dest={{ dest_jdk_path }}- name: unzip JDKshell: tar -xvzf /usr/src/jdk-8u211-linux-x64.tar.gz -C /usr/local- name: rename to javashell: mv /usr/local/jdk1.8.0_211 /usr/local/java- name: configure JDK envirement1shell: echo "JAVA_HOME=/usr/local/java" >> /etc/profile- name: configure JDK envirement2shell: echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
##Tomcat- name: copy tomcatcopy: src={{ src_tomcat_path }} dest={{ dest_tomcat_path }}- name: unzip tomcatshell: tar -xvzf /usr/src/apache-tomcat-8.5.45.tar.gz -C /usr/local- name: rename to tomcatshell: mv /usr/local/apache-tomcat-8.5.45 /usr/local/tomcat- name: copy startup filecopy: src=/usr/src/startup.sh dest=/usr/local/tomcat/bin
##Jenkins- name: copy jenkinscopy: src=/usr/src/jenkins.war  dest=/usr/local/tomcat/webapps/notify: start jenkinshandlers:- name: start jenkinsshell: nohup /usr/local/tomcat/bin/startup.sh &

http://www.ppmy.cn/news/969511.html

相关文章

Android 进阶17:Fragment FragmentManager FragmentTransaction 深入理解

日常开发中我们经常使用 Fragment 管理布局,使用起来非常方便,但是在简单的 API 背后隐藏了什么操作,很多人恐怕不了解。 如果你回答不出这些问题,那这篇文章可能就对你有些帮助: Fragment FragmentManager Fragment…

php中new与构造函数,php - 在构造函数中使用“ new”关键字 - SO中文参考 - www.soinside.com...

这实际上是依赖项注入背后的理论。 并不是说使用“ new”本身是一个坏主意。相反,通过实例化类内部的对象,您正在创建硬依赖性,如果不更改类本身就无法更改或切换出来。 它也违反了“编码到接口,而不是实现”的范式 示例&#xff…

计算机无法联网的原因和解决方案,上不了网络的原因分析及解决办法

很多时候上不了网络因为电脑网卡无法自动获取DNS地址导致,如何查看及设置电脑的IP地址、网关、DNS? 在遇到网络故障或一些别的情况,无法上网时时,电脑维修人员也会告诉你查看电脑的IP地址。那么如何查看及设置电脑的IP地址、网关、DNS呢?今天…

凡事预则立--求职

一、简介 1、求职一般分为5步 (1)笔试 (2)电话面熟 (3)面试 (4)签约 (5)违约 二、注意事项 (1)薪水(税前还是税…

机器学习--最小二乘法

补充: 一. 简介 最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法…

一个屌丝程序猿的人生(八十四)

次日。 清晨6点。 天刚蒙蒙亮,林萧便早早的从床上爬了起来。 虽说上次面试去过一次,对于路线和路上花费的时间,已经有了一定的经验,但因为是第一次到公司报道,林萧不敢有丝毫大意。 洗簌完以后,林萧没有立即…

数据库存储过程,触发器混个面熟

存储过程是一个可重用的代码模块,可以高效率地完成指定的操作,既可 以使用Transact-SQL语言编写存储过程,也可以使用CLR方式编写存储过程 1.存储过程包含三种:用户定义的存储过程,扩展的存储过程,系统存储…

java最后问面试官什么问题,大量教程

魔鬼面试官必问:ConcurrentHashMap 线程安全吗?但面对魔鬼面试官时,我们更在乎的是这些真的正确吗? 1 线程重用导致用户信息错乱生产环境中,有时获取到的用户信息是别人的。查看代码后 为方便观察问题,我们输出了这个Map一开始和最后的元素个数。 师兄大厂面试遇到面试官的Ka…