ansible roles應用(安裝nginx並轉發後端2臺tomcat應用)

代理服務器:安裝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默認頁面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章