1. 程式人生 > >ansible批量部署tomcat

ansible批量部署tomcat

main vars onf xtra sta ans playbooks == enabled

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 文件目錄結構

[[email protected] ~]# 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.29.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 ####總調用文件
34 directories, 11 files [[email protected] ~]#

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.0-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.8.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.29.tar.gz dest=/tmp/apache-tomcat-8.0.29.tar.gz
#解壓tomcat到opt目錄
- name: Extract archive
  command: /bin/tar xf /tmp/apache-tomcat-8.0.29.tar.gz -C /opt
#創建軟連接
- name: Symlink install directory
  file: src=/opt/apache-tomcat-8.0.29/ 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=0755
#開啟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