author:JevonWei

版权声明:原创作品


实验架构:一台nginx主机为后端两台tomcat主机的代理,并使用Ansible主机配置

实验环境

Nginx  		172.16.252.82
Tomcat-A 172.16.252.67
Tomcat-B 172.16.252.184
Ansible 172.16.252.207

Ansible实战之Nginx代理Tomcat主机架构

配置主机名解析

[root@Ansible ~]# vim /etc/hosts
172.16.252.67 Tomcat-A
172.16.252.184 Tomcat-B
172.16.252.207 Ansible
172.16.252.82 Nginx

配置主机将秘钥认证通信

[root@Ansible ~]# ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
cb:1b:f0:e5:bb:e7:da:04:96:52:4b:7b:60:c9:ac:1d root@Ansible
The key's randomart image is:
+--[ RSA 2048]----+
| |
| o . |
| E |
| * * |
| . S O . |
| + * o |
| = . . |
| o +. |
| . +=o |
+-----------------+
[root@Ansible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub Tomcat-A
[root@Ansible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub Tomcat-B
[root@Ansible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub Nginx

Ansible

[root@Ansible ~]# yum -y install ansible

添加主机到主机清单文件中
[root@Ansible ~]# vim /etc/ansible/hosts
[lb]
172.16.252.82
[tcsrvs]
172.16.252.67
172.16.252.184 查看主机清单主机的可用主机
[root@Ansible ~]# ansible all --list-hosts
hosts (3):
172.16.252.82
172.16.252.67
172.16.252.184
[root@Ansible ~]# ansible lb --list-hosts
hosts (1):
172.16.252.82
[root@Ansible ~]# ansible tcsrvs --list-hosts
hosts (2):
172.16.252.67
172.16.252.184 定义roles目录
[root@Ansible ~]# mkdir -pv /etc/ansible/roles/{nginx,tomcat,jdk}/{files,templates,tasks,handlers,vars,meta,default}
[root@Ansible nginx]# cd /etc/ansible/roles/nginx/
编辑nginx角色的任务文件
[root@Ansible nginx]# vim tasks/main.yml
- name: install nginx
yum: name=nginx state=latest
when: ansible_os_family == "RedHat"
- name: install conf
copy: src=lb.conf dest=/etc/nginx/conf.d/
tags: conf
notify: restart nginx
- name: start nginx
service: name=nginx state=started enabled=yes 编辑handlers触发文件
[root@Ansible nginx]# vim handlers/main.yml
- name: restart nginx
service: name=nginx state=restarted 定义Nginx的虚拟主机文件
[root@Ansible nginx]# vim files/lb.conf
upstream tcsrvs {
server Tomcat-A.danran.com:8080;
server Tomcat-B.danran.com:8080;
}
server {
listen 8080;
server_name www.danran.com;
location / {
proxy_pass http://tcsrvs;
}
} 配置jdk角色
配置jdk角色的任务文件
[root@Ansible roles]# cd jdk/
root@Ansible jdk]# vim tasks/main.yml
[root@Ansible jdk]# vim tasks/main.yml
- name: install openjdk
yum: name=java-{{ version }}-openjdk-devel state=latest \\{{ version }}使用变量
- name: install env file \\定义jdk程序的环境文件
copy: src=java.sh dest=/etc/profile.d/ 编辑jdk的程序环境文件
[root@Ansible jdk]# vim files/java.sh
export JAVA_HOME=/usr 配置tomcat的角色
编辑tomcat的任务文件
[root@Ansible tomcat]# vim tasks/main.yml
- name: install package
yum: name={{ item }} state=latest
with_items:
- tomcat
- tomcat-admin-webapps
- tomcat-webapps
- tomcat-docs-webapp
when: ansible_os_family == "RedHat"
- name: start tomcat
service: name=tomcat state=started enabled=yes 编辑playbook样本文件,调用nginx角色
[root@Ansible ~]# mkdir playbooks
[root@Ansible ~]# cd playbooks/
[root@Ansible playbooks]# vim nginx.yaml
- hosts: lb
remote_user: root
roles:
- nginx
- hosts: tcsrvs
remote_user: root
roles:
- { role: jdk,version: 1.8.0 } \\调用jdk角色及定义version变量
- tomcat 执行nginx.yaml样本文件
[root@Ansible playbooks]# ansible-playbook nginx.yaml
PLAY [lb] ********************************************************************** TASK [setup] *******************************************************************
ok: [172.16.252.82] TASK [nginx : install nginx] ***************************************************
ok: [172.16.252.82] TASK [nginx : install conf] ****************************************************
changed: [172.16.252.82] TASK [nginx : start nginx] *****************************************************
changed: [172.16.252.82] RUNNING HANDLER [nginx : restart nginx] ****************************************
changed: [172.16.252.82] PLAY [tcsrvs] ****************************************************************** TASK [setup] *******************************************************************
ok: [172.16.252.67]
ok: [172.16.252.184] TASK [jdk : install openjdk] ***************************************************
changed: [172.16.252.67]
changed: [172.16.252.184] TASK [jdk : install env file] **************************************************
changed: [172.16.252.67]
changed: [172.16.252.184] TASK [tomcat : install package] ************************************************
changed: [172.16.252.67] => (item=[u'tomcat', u'tomcat-admin-webapps', u'tomcat-webapps', u'tomcat-docs-webapp'])
changed: [172.16.252.184] => (item=[u'tomcat', u'tomcat-admin-webapps', u'tomcat-webapps', u'tomcat-docs-webapp']) TASK [tomcat : start tomcat] ***************************************************
changed: [172.16.252.184]
changed: [172.16.252.67] PLAY RECAP *********************************************************************
172.16.252.184 : ok=5 changed=4 unreachable=0 failed=0
172.16.252.67 : ok=5 changed=4 unreachable=0 failed=0
172.16.252.82 : ok=5 changed=3 unreachable=0 failed=0

Ansible实战之Nginx代理Tomcat主机架构的更多相关文章

  1. Puppet单机实战之Nginx代理Tomcat

    author:JevonWei 版权声明:原创作品 blog:http://119.23.52.191/ --- 构建实战之Nginx代理Tomcat [root@node1 modules]# mk ...

  2. nginx代理tomcat

    http://blog.csdn.net/kongqz/article/details/6838989 http://www.800l.com/linux-nginx-tomcat-jdk.html ...

  3. nginx代理tomcat后,tomcat获取真实(非proxy,非别名)nginx服务端ip端口的解决方案

    nginx代理tomcat后,tomcat获取服务端ip端口的解决方案 1.注意修改nginx配置代理,标红地方 #user nginx; worker_processes ; error_log l ...

  4. Docker Compose 一键部署Nginx代理Tomcat集群

    Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [root@localhost ~]# tree compose_nginx_tomcat/ compose_nginx ...

  5. nginx代理 tomcat获得真实用户IP

    nginx代理 tomcat获得真实用户IP 2017年04月08日 21:34:17 cf 阅读数 1825更多 分类专栏: nginx html/js/ajax   版权声明:本文为博主原创文章, ...

  6. Ansible实战之Nginx高可用代理LNMP-wordpress

    author:JevonWei 版权声明:原创作品 blog:http://119.23.52.191/ --- 实验环境:前端使用Nginx做代理服务器,静态资源经由缓存服务器,连接后端web集群, ...

  7. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  8. Nginx与Tomcat/PHP架构优化的技术分享

    PHP性能优化 一般我们是在/usr/local/php5/etc/php-fpm.conf这个文件里面进行相应的配置. 1)       如果设置成static,php-fpm进程数自始至终都是pm ...

  9. https方式nginx 代理tomcat访问不带www的域名301重定向跳转到www的域名帮助seo集中权重

    比如我要把 http://gucanhui.com http://www.gucanhui.com 跳转到https://www.gucanhui.com 用F12的network可以看到状态码301 ...

随机推荐

  1. Mybatis-延迟加载和缓存

    延迟加载 概念: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表 ...

  2. 解决wget下载https时报错 --no-check-certificate (不检查证书)

    如果使用 wget下载https开头的网址域名 时报错,你需要加上 --no-check-certificate (不检查证书)选项 例如: wget https://pypi.python.org/ ...

  3. Spring学习记录(一)

    1.Spring简介 Spring是一个轻量级的java开发框架.框架的主要优势之一就是分层架构,Spring使用基本的JavaBean,不仅限于服务器的开发.从简单性,可测试性和松耦合的角度而言,任 ...

  4. Excel自动从身份证中提取生日、性别、年龄

    现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位“2”代表的是性别,偶数为女性,奇数为男性.我们要做的就是把 ...

  5. swiper动画效果

    参考swiper官方网站:http://www.swiper.com.cn/ Swiper常用于移动端网站的内容触摸滑动: 结构展示:   纯javascript打造的滑动特效插件,面向手机.平板电脑 ...

  6. 将xml转为array 输出xml字符

    //将xml转为array private function fromXml($xml){ // 禁止引用外部xml实体 libxml_disable_entity_loader(true); ret ...

  7. java util - 中文、繁体转成拼音工具pinyin4j

    需要 pinyin4j-2.5.0.jar 包 代码例子 package cn.java.pinyin4j; import net.sourceforge.pinyin4j.PinyinHelper; ...

  8. Find a path HDU - 5492 (dp)

    Find a path Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  9. [BZOJ1208]宠物收养所(Splay)

    Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特 ...

  10. git 远程仓库 与本地项目 挂钩 全过程

    摘要:学了Android 快三个月了,依旧不会git,真的有些丢人.git是一个非常棒的团队协作的工具.其实也是分分钟的事情.Follow Me! Step 1 在码云上新建一个项目,作为远程仓库.里 ...