1.1 Building the Directory Structure This operation is to install the directory structure of nginx+mysql+tomcat+db. You can refer to it. It's good~ mkdir -p /ansible/roles/{nginx,mysql,tomcat,db}/{defaults,files,handlers,meta,tasks,templates,vars}
1.2 File Directory Structure [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.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 ###Automatically distribute sshkey script (will be posted in full below) ├── web.retry └── web.yml ####Total number of files called: 34 directories, 11 files 1.3 Create a general call file in the ansible directory - hosts: bgo ####This is the host group name defined by hosts. If it is a single host, you can directly write the address remote_user: root ####Execution user roles: #####Explanation of the configuration file directory, because we are installing tomcat this time, so comment out the others # - nginx # -mysql - tomcat # - db 1.4 Create a tomcat installation playbook file vim /ansible/roles/tomcat/tasks/main.yml #This is to install jdk using the yum module. If necessary, you can use #- name: install java # yum: name=java-1.8.0-openjdk.x86_64 state=present =============================================================== #Create user- name: group group: name=tomcat - name: user user: name=tomcat group=tomcat home=/usr/tomcat sudo: True ################################This source package installs JDK############################### #Copy jdk to the tmp directory - name: copy jdk-8u73-linux-x64.gz copy: src=jdk-8u73-linux-x64.gz dest=/tmp/jdk-8u73-linux-x64.gz #Unzip the jdk package to /application - name: Extract archive jdk command: /bin/tar xf /tmp/jdk-8u73-linux-x64.gz -C /application #Rename - name: java shell: mv /application/jdk1.8.0_73 /application/java #Add environment variables - 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" ############################Install tomcat########################################## - name: copy tomcat_tar_gz copy: src=apache-tomcat-8.0.29.tar.gz dest=/tmp/apache-tomcat-8.0.29.tar.gz #Unzip tomcat to the opt directory - name: Extract archive command: /bin/tar xf /tmp/apache-tomcat-8.0.29.tar.gz -C /opt #Create a soft link - name: Symlink install directory file: src=/opt/apache-tomcat-8.0.29/ dest=/application/tomcat state=link #Give directory permissions - name: Change ownership of Tomcat installation file: path=/application/tomcat/ owner=tomcat group=tomcat state=directory recurse=yes #Push configuration file - name: Configure Tomcat users template: src=tomcat-users.xml dest=/application/tomcat/conf/ notify: restart tomcat #Install tomcat. init startup script - name: Install Tomcat init script copy: src=tomcat-initscript.sh dest=/etc/init.d/tomcat mode=0755 #Start tomcat - name: Start Tomcat service:name=tomcat state=started enabled=yes 1.5 Calling handlers via notify - name: restart tomcat service:name=tomcat state=restarted 1.6 Syntax Check === Execute Installation cd /ansible ansible-playbook web.yml --syntax-check #Check syntax ansible-playbook web.yml #Execute The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Summary of special processing statements of MySQL SQL statements (must read)
>>: Reasons and solutions for failure of dynamically added routing pages in Vue when refreshing
MySQL is divided into Community Edition (Communit...
Table of contents What is ReactHook? React curren...
<br />Yesterday I saw at W3C that the new HT...
This article shares the specific code of JS to ac...
Introduction Closure is a very powerful feature i...
ScreenCloud is a great little app you didn’t even...
Table of contents Preface - Vue Routing 1. The mo...
Special symbols Named Entities Decimal encoding S...
1. Introduction Responsive Web design allows a we...
Table of contents Preface 1. With vue-cli 1. Defi...
Prepare war package 1. Prepare the existing Sprin...
DML operations refer to operations on table recor...
Mysql sets boolean type 1. Tinyint type We create...
1. There are many Python version management tools...
Problems: After adding the -v parameter to docker...