一键部署tomcat
环境准备:
客户端:web01:ip:192.168.10.7、172.16.1.7,主机名:web01
web02:ip:192.168.10.8、172.16.1.8,主机名:web02
web03:ip:192.168.10.9、172.16.1.9,主机名:web03
db01:ip:192.168.10.51、172.16.1.51,主机名:db01
管理端:m01:ip:192.168.10.61,主机名:m01,项目目录:/server/project_roles/
管理端与客户端的ssh密钥认证已提前做好。
1、管理端
管理端:m01:ip:192.168.10.61,主机名:m01
1)创建项目目录
[root@m01 /server/project_roles]#mkdir -p tomcat/{tasks,files}
2)tasks
[root@m01 /server/project_roles]#vim tomcat/tasks/main.yml
- name: 1.分发jdk软件包
copy:
src: jdk-8u351-linux-x64.rpm
dest: /tmp/
- name: 2.安装jdk
yum:
name: /tmp/jdk-8u351-linux-x64.rpm
state: present
- name: 3.创建/app/tools/目录
file:
name: /app/tools/
state: directory
- name: 4.分发tomcat软件包
unarchive:
src: apache-tomcat-9.0.76.tar.gz
dest: /app/tools/
- name: 5.创建软连接
file:
src: /app/tools/apache-tomcat-9.0.76
dest: /app/tools/tomcat
state: link
- name: 6.启动tomcat
shell: /app/tools/tomcat/bin/startup.sh &
3)下载tomcat软件包
官网:https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
把tomcat包下载到tomcat/files/目录中
[root@m01 ~]#curl -o /server/project_roles/tomcat/files/apache-tomcat-9.0.76.tar.gz https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
4)下载jdk
官网:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
下载到tomcat/files/目录中,下载过程略。这里使用jdk-8u351-linux-x64.rpm版本
[root@m01 /server/project_roles/tomcat/files]#tree
.
├── apache-tomcat-9.0.76.tar.gz
└── jdk-8u351-linux-x64.rpm
0 directories, 2 files
[root@m01 /server/project_roles/tomcat/files]#
5)剧本入口文件
剧本入口文件:top.yml
tomcat部署在web03(172.16.1.9)上面
#- hosts: 172.16.1.7
# gather_facts: no
# roles:
# - role: nginx
- hosts: 172.16.1.9
gather_facts: no
roles:
- role: tomcat
目录结构:
|---hosts
├── tomcat
│ ├── files
│ │ └── apache-tomcat-9.0.76.tar.gz
│ └── tasks
│ └── main.yml
└── top.yml
5)执行剧本
[root@m01 /server/project_roles]#ansible-playbook -i hosts top.yml
注意事项:
在剧本中启动tomcat并没有成功。
手动启动Tomcat服务,在web03端执行命令:
[root@web03 ~]# /app/tools/tomcat/bin/startup.sh
Using CATALINA_BASE: /app/tools/tomcat
Using CATALINA_HOME: /app/tools/tomcat
Using CATALINA_TMPDIR: /app/tools/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@web03 ~]# /app/tools/tomcat/bin/startup.sh
Using CATALINA_BASE: /app/tools/tomcat
Using CATALINA_HOME: /app/tools/tomcat
Using CATALINA_TMPDIR: /app/tools/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
此时。tomcat启动成功,默认端口:8080
2、浏览器打开网站
浏览器打开:192.168.10.9:8080,看到如下界面:则表示tomcat服务部署成功
3、剧本中启动tomcat的问题
在前面的剧本中,tomcat并没有启动成功。
剧本中,启动Tomcat的代码修改如下:
- name: 6.启动tomcat
shell: /app/tools/tomcat/bin/startup.sh
register: tomcat_result
- name: debug
debug:
msg: "{{ tomcat_result }}"
重新执行剧本,使用–start-at-task选项,从“启动tomcat”的tasks开始执行到最后,前面的步骤不执行
[root@m01 /server/project_roles]#ansible-playbook -i hosts --start-at-task "6.启动tomcat" top.yml
输出的信息如下:
[root@m01 /server/project_roles]#ansible-playbook -i hosts --start-at-task "6.启动tomcat" top.yml
PLAY [172.16.1.9] ***********
TASK [6.启动tomcat] **********
changed: [172.16.1.9]
TASK [tomcat : debug] ***********
TASK [tomcat : debug] ********************************************************************************************
ok: [172.16.1.9] => {
"msg": {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"cmd": "/app/tools/tomcat/bin/startup.sh",
"delta": "0:00:00.033082",
"end": "2023-06-18 09:31:09.550831",
"failed": false,
"rc": 0,
"start": "2023-06-18 09:31:09.517749",
"stderr": "",
"stderr_lines": [],
"stdout": "Using CATALINA_BASE: /app/tools/tomcat\nUsing CATALINA_HOME: /app/tools/tomcat\nUsing CATALINA_TMPDIR: /app/tools/tomcat/temp\nUsing JRE_HOME: /usr\nUsing CLASSPATH: /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar\nUsing CATALINA_OPTS: \nTomcat started.",
"stdout_lines": [
"Using CATALINA_BASE: /app/tools/tomcat",
"Using CATALINA_HOME: /app/tools/tomcat",
"Using CATALINA_TMPDIR: /app/tools/tomcat/temp",
"Using JRE_HOME: /usr",
"Using CLASSPATH: /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar",
"Using CATALINA_OPTS: ",
"Tomcat started."
]
}
}
PLAY RECAP ********************************
172.16.1.9 : ok=1 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
[root@m01 /server/project_roles]#
提示信息是成功启动的,但实际上并没有启动成功。为什么?其实是环境变量的问题。把剧本中的“/app/tools/tomcat/bin/startup.sh ”修改如下:
nohup /app/tools/tomcat/bin/startup.sh &
如下:
再执行剧本,Tomcat就成功启动了。
tomcat日志:/app/tools/tomcat/logs/catalina.out