通过ansible-playbook,批量部署tomcat。
- 将所有部署tomcat的主机分为javaserver组:
# vim /etc/ansible/hosts
[javaserver]
192.168.30.128
192.168.30.129
192.168.30.130
- 创建管理目录:
# mkdir -p tomcat/roles/tomcat_install/{files,handlers,meta,tasks,templates,vars}
# cd tomcat/
说明:
files:存放需要同步到异地服务器的源码文件及配置文件;
handlers:当资源发生变化时需要进行的操作,若没有此目录可以不建或为空;
meta:存放说明信息、说明角色依赖等信息,可留空;
tasks:tomcat安装过程中需要进行执行的任务;
templates:用于执行tomcat安装的模板文件,一般为脚本;
vars:本次安装定义的变量
# tree .
.
├── roles
│ └── tomcat_install
│ ├── files
│ │ ├── apache-tomcat-8.5.39.tar.gz
│ │ └── jdk-8u191-linux-x64.tar.gz
│ ├── handlers
│ ├── meta
│ ├── tasks
│ │ ├── copy.yml
│ │ ├── install.yml
│ │ ├── main.yml
│ │ └── prepare.yml
│ ├── templates
│ │ ├── jdk_PATH
│ │ └── tomcat
│ └── vars
│ └── main.yml
└── tomcat.yml
8 directories, 10 files
- 创建tomcat入口文件,用来调用tomcat_install:
# vim tomcat.yml
#用于批量安装Tomcat
- hosts: javaserver
remote_user: root
gather_facts: True
roles:
- tomcat_install
- 创建变量:
# vim roles/tomcat_install/vars/main.yml
#定义tomcat安装中的变量
JDK_VER: 191
TOMCAT_VER: 8.5.39
TOMCAT_VER_MAIN: "{
{ TOMCAT_VER.split('.')[0] }}"
DOWNLOAD_URL: https://mirrors.shu.edu.cn/apache/tomcat/tomcat-{
{
TOMCAT_VER_MAIN }}/v{
{
TOMCAT_VER }}/bin/apache-tomcat-{
{
TOMCAT_VER }}.tar.gz
TOMCAT_URL: tomcat
TOMCAT_PORT: 8080
SOURCE_DIR: /software
JDK_DIR: /usr/local/jdk
TOMCAT_DIR: /usr/local/tomcat
DATA_DIR: /data/tomcat
- 创建模板文件:
环境变量jdk_PATH
# vim roles/tomcat_install/templates/jdk_PATH
JAVA_HOME={
{ JDK_DIR }}
JAVA_BIN={
{ JDK_DIR }}/bin
JRE_HOME={
{ JDK_DIR }}/jre
PATH=$PATH:{
{ JDK_DIR }}/bin:{
{ JDK_DIR }}/jre/bin
CLASSPATH={
{ JDK_DIR }}/jre/lib:{
{ JDK_DIR }}/lib:{
{ JDK_DIR }}/jre/lib/charsets.jar
tomcat启动脚本
# vim roles/tomcat_install/templates/tomcat
#!/bin/sh
# chkconfig: 345 99 10
# description: Auto-starts tomcat
# /etc/init.d/tomcatd
# Tomcat auto-start
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
p