ansible批量部署tomcat
1.1 构建目录结构
此操作是安装nginx+mysql+tomcat+db的目录结构,可以参考一下,不错~
mkdir -p /ansible/roles/{nginx,mysql,tomcat,db}/{defaults,files,handlers,meta,tasks,templates,vars}
- defaults 默认寻找路径
- tasks 存放playbooks路径
- files 存放文件和脚本包,copy模块文件搜索路径
- templates 模版存放路径
- handlers notify调用部分playbook存放路径
- vars roles内变量存放路径
1.2 文件目录结构
[root@qtbackup ~]# tree /ansible/
/ansible/
├── playbook
│ └── playbook.yml
├── roles
│ ├── db
│ │ ├── defaults
│ │ ├── files
│ │ ├── handlers
│ │ ├── meta
│ │ ├── tasks
│ │ ├── templates
│ │ └── vars
│ ├── mysql
│ │ ├── defaults
│ │ ├── files
│ │ ├── handlers
│ │ ├── meta
│ │ ├── tasks
│ │ ├── templates
│ │ └── vars
│ ├── nginx
│ │ ├── defaults
│ │ ├── files
│ │ ├── handlers
│ │ ├── meta
│ │ ├── tasks
│ │ ├── templates
│ │ └── vars
│ └── tomcat
│ ├── defaults
│ ├── files
│ │ ├── apache-tomcat-8.0..tar.gz
│ │ ├── jdk-8u73-linux-x64.gz
│ │ ├── tomcat-initscript.sh
│ │ └── tomcat-users.xml
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ │ └── tomcat-users.xml
│ └── vars
├── ssh_key.sh ###自动分发sshkey脚本 (下边会完整贴出来)
├── web.retry
└── web.yml ####总调用文件 directories, files
[root@qtbackup ~]#
1.3 在ansible目录创建一个总调用文件
- hosts: bgo ####这个是hosts定义个主机组名字,如果是单台主机可以直接写地址
remote_user: root ####执行用户
roles: #####解释配置文件目录,因为我们这次装的是tomcat所以注释其他的
# - nginx
# - mysql
- tomcat
# - db
1.4 创建tomcat安装playbook文件
vim /ansible/roles/tomcat/tasks/main.yml #这个是用yum模块安装jdk,有需要的可以用
#- name: install java
# yum: name=java-1.8.-openjdk.x86_64 state=present ===============================================================
#创建用户
- name: group
group: name=tomcat
- name: user
user: name=tomcat group=tomcat home=/usr/tomcat
sudo: True ##############################这个源码包安装JDK#############################
#复制jdk到tmp目录下
- name: copy jdk-8u73-linux-x64.gz
copy: src=jdk-8u73-linux-x64.gz dest=/tmp/jdk-8u73-linux-x64.gz
#解压jdk包到/application
- name: Extract archive jdk
command: /bin/tar xf /tmp/jdk-8u73-linux-x64.gz -C /application
#改名
- name: java
shell: mv /application/jdk1..0_73 /application/java
#添加环境变量
- name: add /etc/profile
lineinfile: dest=/etc/profile regexp="^JAVA_HOME=" line="JAVA_HOME=/application/java/"
- name: add /etc/profile
lineinfile: dest=/etc/profile regexp="^CLASS_PATH=" line="CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
- name: add /etc/profile
lineinfile: dest=/etc/profile regexp="^PATH=\$PATH:\$JAVA_HOME" line="PATH=$PATH:$JAVA_HOME/bin"
- name: add /etc/profile
lineinfile : dest=/etc/profile regexp="^export JAVA_HOME" line="export JAVA_HOME" ##########################安装tomcat###########################################
- name: copy tomcat_tar_gz
copy: src=apache-tomcat-8.0..tar.gz dest=/tmp/apache-tomcat-8.0..tar.gz
#解压tomcat到opt目录
- name: Extract archive
command: /bin/tar xf /tmp/apache-tomcat-8.0..tar.gz -C /opt
#创建软连接
- name: Symlink install directory
file: src=/opt/apache-tomcat-8.0./ dest=/application/tomcat state=link
#赋予目录权限
- name: Change ownership of Tomcat installation
file: path=/application/tomcat/ owner=tomcat group=tomcat state=directory recurse=yes
#推送配置文件
- name: Configure Tomcat users
template: src=tomcat-users.xml dest=/application/tomcat/conf/
notify: restart tomcat
#安装tomcat。init启动脚本
- name: Install Tomcat init script
copy: src=tomcat-initscript.sh dest=/etc/init.d/tomcat mode=
#开启tomcat
- name: Start Tomcat
service: name=tomcat state=started enabled=yes
1.5 通过notify调用handlers
- name: restart tomcat
service: name=tomcat state=restarted
1.6 语法检测===执行安装
cd /ansible
ansible-playbook web.yml --syntax-check #检查语法
ansible-playbook web.yml #执行
ansible批量部署tomcat的更多相关文章
- Ansible批量部署工具
Ansible:自动化运维工具 你需要在一台机器上yum install 一个包,这时候有一个需求,比如现在有5台机同时需要装apache这个包,那么100台呢,ssh上去就太慢了,这时候就借助到了a ...
- 利用ansible批量部署zabbix-agent
应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...
- ansible 批量部署准备工作
Ansible:自动化运维工具,基于Python开发 功能{ 批量系统配置 批量程序部署 批量运行命令等等 } 准备工作: 一.操作主机安装epel源 和 ansible工具 yum -y insta ...
- ansible批量部署mysql
1.1 将mysql软件包同步到客户端服务器,做安装前期准备 Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下 vim /ansible/r ...
- ansible批量部署(一)
自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...
- Ansible自动部署tomcat
1.首先准备3台机器 ansible机器:192.168.52.34 目标主机:192.168.52.35 目标主机:192.168.52.36 2.关闭防火墙 [root@localhost ~]# ...
- Ansible批量部署工具的安装
1.系统安装gcc,以及python2.6以上(2.6.8): 第一种比较简单的安装方法: 1)直接yum install -y ansible; 2)然后更改配置,/etc/ansible/ansi ...
- ansible批量部署nginx
1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz ...
- ansible批量部署模块(二)
回顾:Ansible: 无需客户端程序 只要有SSH 模块化 ansible帮助工具ansible-doc 模块名ansible-doc 模块名 -s 列出该模块的所有选项ansible-doc -l ...
随机推荐
- 一维数组的求平均成绩 Day06
package com.sxt.arraytest1; /* * 求班里学生的平均成绩,以及成绩的综合 输出每个同学的成绩 */ import java.util.Arrays; import jav ...
- maven修改版本号
1.修改版本 mvn versions:set -DnewVersion=xxx 2.回滚版本,提交后不能回滚 mvn versions:revert 3.提交版本变更 mvn versions:co ...
- python 列表长度
- 自定义View系列教程03--onLayout源码详尽分析
深入探讨Android异步精髓Handler 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Andr ...
- Spring AOP 的@Aspect
Spring AOP 的@Aspect 转自:http://blog.csdn.net/tanghw/article/details/3862987 从Spring 2.0开始,可以使用基于sch ...
- 21Hash算法以及暴雪Hash
一:哈希表简介 哈希表是一种查找效率极高的数据结构,理想情况下哈希表插入和查找操作的时间复杂度均为O(1),任何一个数据项可以在一个与哈希表长度无关的时间内计算出一个哈希值(key),然后在常量时间内 ...
- HZOJ 匹配
Hash/KMP裸题,并不想写什么,只是复习一下KMP吧. void get_n() { next[]=; ; ;i<=lt;i++) { && t[i]!=t[j+])j=ne ...
- [***]HZOJ 奇袭
C. 奇袭 题目描述 由于各种原因,桐人现在被困在Under World(以下简称UW)中,而UW马上 要迎来最终的压力测试——魔界入侵. 唯一一个神一般存在的Administrator被消灭了,靠原 ...
- Shell echo 命令
Shell 的echo 指令与PHP的echo指令类似,都是用于字符串的输出.命令格式: echo string 您可以使用echo实现更复杂的输出格式控制. 1.显示普通字符串: echo &quo ...
- oracle 识别’低效执行’的SQL语句
用下列SQL工具找出低效SQL: SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_ ...