代理服務器:安裝nginx並轉發後端2臺tomcat應用
後端應用:安裝jdk、tomcat、啓動應用
node1:nginx
node2、node3:tomcat
node4:ansible
[root@node4 ~]# cat /etc/ansible/hosts
[lb]
node1.changecan.com
[tcsrvs]
node[2:3].changecan.com
[root@node4 ~]# ssh-keygen -t rsa -P ''
[root@node4 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[root@node4 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[root@node4 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[root@node4 ~]# ansible all --list-hosts
hosts (3):
node1.changecan.com
node2.changecan.com
node3.changecan.com
[root@node4 ~]# mkdir -pv /etc/ansible/roles/{nginx,jdk,tomcat}/{files,templates,tasks,handlers,vars,meta,default}
#安裝nginx、處理配置文件、啓動nginx服務
[root@node4 ~]# cat /etc/ansible/roles/nginx/tasks/main.yaml
- 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
[root@node4 ~]# cat /etc/ansible/roles/nginx/handlers/main.yaml
- name: restart nginx
service: name=nginx state=restarted
[root@node4 ~]# cat /etc/ansible/roles/nginx/files/lb.conf
upstream tcsrvs {
server node2.changecan.com:8080;
server node3.changecan.com:8080;
}
server {
listen 80;
server_name www.changecan.io;
location / {
proxy_pass http://tcsrvs;
}
}
#安裝jdk
[root@node4 ~]# cat /etc/ansible/roles/jdk/tasks/main.yaml
- name: install openjdk
yum: name=java-{{ version }}-openjdk-devel state=latest
- name: install env file
copy: src=java.sh dest=/etc/profile.d/
[root@node4 ~]# cat /etc/ansible/roles/jdk/files/java.sh
export JAVA_HOME=/usr
#安裝tomcat、啓動tomcat服務
[root@node4 ~]# cat /etc/ansible/roles/tomcat/tasks/main.yaml
- 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
[root@node4 ~]# cat playbooks/nt.yaml
- hosts: lb
remote_user: root
roles:
- nginx
- hosts: tcsrvs
remote_user: root
roles:
- { role: jdk, version: 1.8.0 }
- tomcat
[root@node4 ~]# cd playbooks
[root@node4 playbooks]# ansible-playbook -C nt.yaml
[root@node4 playbooks]# ansible-playbook nt.yaml
#在瀏覽器測試可直接訪問www.changecan.io,出現tomcat默認頁面