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的更多相关文章

  1. Ansible批量部署工具

    Ansible:自动化运维工具 你需要在一台机器上yum install 一个包,这时候有一个需求,比如现在有5台机同时需要装apache这个包,那么100台呢,ssh上去就太慢了,这时候就借助到了a ...

  2. 利用ansible批量部署zabbix-agent

    应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件. 监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选. 当主机数量较多时,可以利用相关 ...

  3. ansible 批量部署准备工作

    Ansible:自动化运维工具,基于Python开发 功能{ 批量系统配置 批量程序部署 批量运行命令等等 } 准备工作: 一.操作主机安装epel源 和 ansible工具 yum -y insta ...

  4. ansible批量部署mysql

    1.1 将mysql软件包同步到客户端服务器,做安装前期准备 Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下 vim /ansible/r ...

  5. ansible批量部署(一)

    自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署-> ...

  6. Ansible自动部署tomcat

    1.首先准备3台机器 ansible机器:192.168.52.34 目标主机:192.168.52.35 目标主机:192.168.52.36 2.关闭防火墙 [root@localhost ~]# ...

  7. Ansible批量部署工具的安装

    1.系统安装gcc,以及python2.6以上(2.6.8): 第一种比较简单的安装方法: 1)直接yum install -y ansible; 2)然后更改配置,/etc/ansible/ansi ...

  8. ansible批量部署nginx

    1.1 将nginx的安装包,和安装脚本copy到客户端,并安装脚本 vim /ansible/roles/nginx/tasks/main.yml - name: copy nginx_tar_gz ...

  9. ansible批量部署模块(二)

    回顾:Ansible: 无需客户端程序 只要有SSH 模块化 ansible帮助工具ansible-doc 模块名ansible-doc 模块名 -s 列出该模块的所有选项ansible-doc -l ...

随机推荐

  1. Python基础:04映射类型

    字典是Python语言中唯一的映射类型.一个字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象.字典中的数据是无序排列的. 映射类型也可被称做哈希表,哈希表的算法是获取键,对键执行一 ...

  2. 初识block

    我们可以把Block当做Objective-C的匿名函数.Block允许开发者在两个对象之间将任意的语句当做数据进行传递,往往这要比引用定义在别处的函数直观.另外,block的实现具有封闭性(clos ...

  3. ViewPager封装工具类: 轻松实现APP导航或APP中的广告栏

    相信做app应用开发的,绝对都接触过ViewPager,毕竟ViewPager的应用可以说无处不在:APP第一次启动时的新手导航页,APP中结合Fragment实现页面滑动,APP中常见的广告栏的自动 ...

  4. 洛谷P2709 小B的询问 莫队

    小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数.小 ...

  5. H3C 路由器SSH服务配置命令(续)

  6. 因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug

    遇到个 Java 和 Php 在获取客户端 cookie 方式不同导致跨系统的问题.所以写了这篇博客梳理下相关知识. 实验 下面通过两个简单的实验,来看Java和Php在获取web请求中的cookie ...

  7. @省选模拟赛03/16 - T3@ 超级树

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 一棵 k-超级树(k-SuperTree) 可按如下方法得到:取 ...

  8. Windows系统下三十款优秀开源软件

    Windows系统下三十款优秀开源软件 1.Firefox 官方网站:http://www.getfirefox.com/ 可替换Internet Explorer 功能特点:如果你还没有使用Fire ...

  9. [C#] 如何把void*转换为byte[]

    一般来说,C#库的对外接口应该提供byte[]这样比较容易用的接口,而不应该提供裸的void* 但是有些库确实是这么封装的.那么就有一个如何转换的问题.MSDN推荐的转换方式是使用UnmanagedM ...

  10. Treap(树堆)入门

    作者:zifeiy 标签:Treap 首先,我么要知道:Treap=Tree+Heap. 这里: Tree指的是二叉排序树: Heap指的是堆. 所以在阅读这篇文章之前需要大家对 二叉查找树 和 堆( ...