博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ansible实战之Nginx代理Tomcat主机架构
阅读量:4605 次
发布时间:2019-06-09

本文共 5337 字,大约阅读时间需要 17 分钟。

author:JevonWei

版权声明:原创作品


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

实验环境

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

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

配置主机名解析

[root@Ansible ~]# vim /etc/hosts 172.16.252.67 Tomcat-A172.16.252.184 Tomcat-B172.16.252.207 Ansible172.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@AnsibleThe 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.67172.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.confupstream 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.shexport 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

转载于:https://www.cnblogs.com/JevonWei/p/7565653.html

你可能感兴趣的文章
shell简介
查看>>
DNS压力测试工具dnsperf简介
查看>>
解决Cannot change version of project facet Dynamic Web module to 3.1
查看>>
bzoj1115: [POI2009]石子游戏Kam
查看>>
友盟+
查看>>
3.3V转5V原理图
查看>>
其他命令
查看>>
asp.net中MD5
查看>>
C# Color 对照表
查看>>
leetcode32. Longest Valid Parentheses
查看>>
谈谈换工作的那些事儿
查看>>
新零售的组成:线下体验零售和线上效率零售
查看>>
java 中 “==” 和 equals 的区别
查看>>
web工程迁移---weblogic8迁移到jboss5遇到的异常
查看>>
live555中类关系与数据结构
查看>>
SPOJ COT Count on a tree 主席树
查看>>
Python中的sort()
查看>>
(转)centos liveCD liveDVD netinstall minimal DVD1 DVD2 版本区别
查看>>
ansible-playbook api 2.0 运行项目
查看>>
leetcode 538. 把二叉搜索树转换为累加树(Convert BST to Greater Tree)
查看>>