Ansible实战之Nginx代理Tomcat主机架构
2017-09-20 23:27
309 查看
author:JevonWei
版权声明:原创作品
实验架构:一台nginx主机为后端两台tomcat主机的代理,并使用Ansible主机配置
实验环境
配置主机将秘钥认证通信
Ansible
版权声明:原创作品
实验架构:一台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
相关文章推荐
- 【APP & Web架构】企业web高可用集群实战之Nginx+nginx_ajp实现Tomcat负载均衡集群+Session 推荐
- Ansible实战之Nginx高可用代理LNMP-wordpress
- nginx 反向代理 tomcat (https、虚拟主机)
- 商城项目实战38:系统架构梳理及Nginx的三种虚拟主机方式
- Puppet单机实战之Nginx代理Tomcat
- LNMP架构应用实战——Nginx配置虚拟主机
- 实战docker,构建nginx反向代理tomcat,学习link和docker-compose
- nginx代理tomcat后,tomcat获取真实(非proxy,非别名)nginx服务端ip端口的解决方案
- nginx基于域名的虚拟主机配置实战
- 使用ansible结合keepalived高可用,nginx反向代理部署小型企业环境
- Nginx反向代理Tomcat
- Linux实战第六篇:CentOS7.3下Nginx虚拟主机配置实战(基于域名)
- 业界最有价值Nginx反向代理实战博文荟萃
- Centos 7 安装nginx 并结合 tomcat 反向代理
- apache多SSL证书虚拟主机使用mod_jk方式代理tomcat
- 高性能网站架构之负载均衡 Nginx+tomcat+redis实现tomcat集群
- nginx反向代理多个tomcat 配置.解决因404问题js css无法加载问题
- 使用Nginx反向代理tomcat服务器
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
- 使用Nginx代理Tomcat服务器