centos7.3上通过ansible配置nginx+tomcat环境

拓扑及IP地址说明:

host1-4:

ansible: host1-192.168.80.71

nginx: host2-192.168.80.72

tomcat1: host3-192.168.80.73

tomcat1: host4-192.168.80.74

ansible---nginx---tomcat1&2

host1:

ansible需要配置epel和extras源,推荐使用阿里源

yum install ansible

编辑ansible的host解析文件:

# vi /etc/ansible/hosts
[nginx]
192.168.80.72
[tomcat]
192.168.80.73
192.168.80.74

配置ssh,分发pubkey到其他三台主机:

ssh-keygen -t rsa -P ‘‘
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

验证hosts主机解析:

ansible all --list-hosts
ansible nginx --list-hosts
ansible tomcat --list-hosts

创建role:

cd /etc/ansible/roles
ansible-galaxy init nginx
ansible-galaxy init tomcat
mkdir -pv {nginx,tomcat}/{templates,files}

目录结构如下

tree nginx
nginx
├── defaults
│   └── main.yml
├── files
│   └── lb.conf
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars
    └── main.yml
8 directories, 9 files

编辑nginx配置文件:

# cd nginx
# vi tasks/main.yml 
- name: install nginx
  yum: name=nginx state=latest
  when: ansible_os_family == "RedHat"
- name: copy config file
  copy: src=lb.conf dest=/etc/nginx/conf.d/
  tags: confignginx
  notify: reload nginx
- name: start nginx
  service: name=nginx state=started enabled=yes
# vi handlers/main.yml
- name: reload nginx
  command: nginx -s reload
  tags: reloadnginx
# vi templates/lb.conf
upstream tcsrvs {
server 192.168.80.73:8080;
server 192.168.80.74:8080;
}
server {
listen 80;
server_name {{ ansible_eth1.ipv4.address }};
location / {
proxy_pass http://tcsrvs;
}
}

编辑tomcat配置文件:

# cd ../tomcat
# vi tasks/main.yml
- name: install openjdk
  yum: name=java-1.8.0-openjdk-devel state=latest
- name: install tomcat package
  yum: name={{ item }} state=latest
  with_items:
  - tomcat
  - tomcat-webapps
  - tomcat-admin-webapps
  - tomcat-docs-webapp
  when: ansible_os_family == "RedHat"
- name: copy index
  template: src=index.jsp.j2 dest=/var/lib/tomcat/webapps/sample/index.jsp
- name: start tomcat
  service: name=tomcat state=started enabled=yes
# vi templates/index.jsp.j2
Host IP is {{ ansible_eth1.ipv4.address }}

编辑playbook文件:

# mkdir ../playbook
# vi playbook/nginx-tomcat.yml
- hosts: nginx
  remote_user: root
  roles:
  - nginx
- hosts: tomcat
  remote_user: root
  roles:
  - tomcat

host1测试并部署playbook:

ansible-playbook -Cv playbook/nginx-tomcat.yml
ansible-playbook playbook/nginx-tomcat.yml

验证Tomcat:

ansible tomcat -a ‘rpm -qa java*‘
ansible tomcat -a ‘rpm -qa tomcat*‘
ansible tomcat -a ‘ss -tnl‘

测试请使用Firefox浏览器,多次刷新测试nginx负载

http://192.168.80.72/sample/index.jsp

host3上配置tomcat-admin-webapps:

# vi /etc/tomcat/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="admin-gui,manager-gui"/>

host1下载配置文件:

ansible 192.168.80.73 -m fetch -a "src=/etc/tomcat/tomcat-users.xml dest=/etc/ansible/roles/tomcat/files/ flat=yes"

ansible上再次编辑tomcat配置文件:

# cd ../tomcat
# vi tasks/main.yml  //增加如下内容
- name: tomcat manage
  copy: src=files/tomcat-users.xml dest=/etc/tomcat/tomcat-users.xml owner=root group=tomcat
  notify: restart tomcat
vi handlers/main.yml
- name: restart tomcat
  service: name=tomcat state=restarted

host1测试并重新部署playbook

ansible-playbook -C playbook/nginx-tomcat.yml
ansible-playbook playbook/nginx-tomcat.yml

测试nginx负载,请使用Firefox浏览器测试

http://192.168.80.72/manager/html

时间: 2024-10-11 16:07:51

centos7.3上通过ansible配置nginx+tomcat环境的相关文章

Ubuntu12.04安装配置Nginx Tomcat环境

1.安装Nginx apt-get install nginx 然后访问http://localhost 显示 2.安装Tomcat 1)安装jdk 下载jdk1.8.0 在usr/lib目录下创建jvm文件夹 在里面解压jdk  sudo vim /etc/environment 在environment中修改PATH,追加JDK路径,添加CLASSPATH与JAVA_HOME后如下: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi

windows下配置nginx+php环境

windows下配置nginx+php环境 刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是“引擎x”,一般引“擎代”表了性能,而“x”大多出现是表示“xtras(额外的效果)”,那么整个词的意思就是类似“极致效果”,“额外性能”.当然这里不是要来唠嗑,以上是题外话. nginx相较于我们熟悉的apache.IIS的优势,就我浅入浅出的了解,在于“反向代理”和“负载均衡”.因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务.那么上正题了,ngin

linux环境下配置jdk+tomcat环境

最近在学习java,其中最重要的一项是将jdk 环境配置好,同时在jdk中结合tomcat开发基于应用,所以在这里记录下. 配置环境: 系统环境:centos 6.3  64位 ,jdk:jdk-6u29-linux-x64.bin ,  tomcat:apache-tomcat-6.0.35.zip  这里需要注意的地方是  jdk 安装时要和系统位数相同,这里我的系统是64位所以这里使用的是jdk 64 位. 开始配置: 这里我将要安装的软件,上传到/usr/loca/目录下,使用 rz 

CentOS7上安装并配置Nginx、PHP、MySql

一.Nginx 1.安装nginx yum install nginx 2.启动nginx systemctl start nginx 除了systemctl start nginx之外,常用的相关命令还有systemctl stop nginx.systemctl restart nginx.systemctl status nginx 3.测试nginx是否安装成功 浏览器输入ip地址或者域名(已经解析过的域名),如下图所示,则安装成功. 4,配置Nginx支持PHP解析 编辑/etc/ng

centos 6.5 配置nginx+Tomcat负载均衡群集

一 .实验环境描述: 三台机器均为centos 6.5-x86_64 负载均衡nginx:nginx-1.6.2.tar.gz                          下载地址: web服务器Tomcat:apache-tomcat-6.0.32.tar.gz  下载地址: jdk-8u73-linux-x64.tar.gz                      下载地址: 实验拓扑图: 主机 IP地址 安装软件 Nginx 代理 192.168.11.160 pcre-devel

window配置nginx tomcat集群

一.Nginx 介绍 Nginx (发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.  其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪.网易. 腾讯,另外知名的微网志Plurk也使用nginx. 二.Window xp环境:Nginx+Tomcat6 1.Nginx安装下载 http://nginx.or

nginx+tomcat环境下,web项目文件上传问题(未完待续)

最近我把自己的服务器换成centos,利用nginx做服务器实现动静分离,觉得项目响应的速度明显提高了(一周之前还是Windows服务器+纯tomcat结构,慢惨了T_T),以前都是用tomcat做服务器,用了nginx之后,处理文件上传及访问时就出了问题--因为我之前都是把文件保存到该web项目的目录(tomcat中)下,而nginx访问的是自己的目录(我的是/data/wwwroot/default/),所以文件可以上传但是无法通过nginx访问,因为tomcat与nginx是两台不同的服务

Nginx + Tomcat 环境下的防图片盗链配置

本来觉得是个挺简单的事情,仔细看了下还是有一些细节需要注意的.网上基本都是仅nginx环境下的配置,这里给一个用Nginx+Tomcat结构的配置及其简要说明,主要有以下两个步骤,选任意一个方案即可. 1. Nginx防盗链的配置 a. 方法一:增加ngx_http_accesskey_module模块,但是需要相应的配置,网上相关资料很多,不赘述. ■ 优点:控制的逻辑严密,非常可靠地解决方案. ■ 缺点:需要做较多的修改. b. 方法二:直接增加Refer的判断,对于不符合设定的请求予以禁止

[AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建

这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).windows上该环境的搭建 :) 前面三篇博客代码实现均基于该环境(开发或者测试过): [AI开发]Python+Tensorflow打造自己的计算机视觉API服务 [AI开发]基于深度学习的视频多目标跟踪实现 [AI开发]视频多目标跟踪高级版 运行环境 1) centOS 7.5 ,不要安装GUI桌面: