Ansible进阶之企业级应用
1.环境
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.50 ansible-master
10.0.0.51 ansible-node1
10.0.0.52 ansible-node2
10.0.0.53 ansible-node3
ssh-keygen -t rsa -P ""
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node3
cat /etc/ansible/hosts
[lb]
ansible-node1
[tcsrvs]
ansible-node2
ansible-node3
# 创建角色目录
mkdir -pv /etc/ansible/roles/{nginx,tomcat}/{files,templetes,tasks,vars,handlers,meta,default}
# 配置文件
cat /etc/ansible/roles/nginx/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=true
cat /etc/ansible/roles/nginx/handlers/main.yml
- name: restart nginx
service: name=nginx state=restarted
cat /etc/ansible/roles/nginx/files/lb.conf
upstream tcsrvs {
server ansible-node2:8080;
server ansible-node3:8080;
}
server {
listen 80;
server_name www.ilinux.net;
location / {
proxy_pass http://tcsrvs;
}
}
cat /etc/ansible/playbooks/nginx-tomcat.yml
- hosts: lb
remote_user: root
roles:
- nginx
- hosts: tcsrvs
remote_user: root
roles:
- {role: jdk,version: 1.8.0}
- tomcat
ansible-playbook -C nginx.yaml
2.ansible以roles的方式安装tomcat
cat /etc/ansible/roles/tomcat/tasks/main.yml
- name: install package
yum: name={{ item }} state=latest
with_item:
- tomcat
- tomcat-admin-webapps
- tomcat-webapps
- tomcat-docs-webapp
when: ansible_os_family == "RedHat"
- name: start tomcat
service: name=tomcat state=started enabled=true
# 安装jdk
mkdir -pv /etc/ansible/roles/jdk/{files,templetes,tasks,vars,handlers,meta,default}
# 系统安装的openjdk不用手动提供java家目录
cat /etc/ansible/roles/jdk/tasks/main.yml
- name: install openjdk
yum: name=java-{{ version }}-openjdk-devel state=latest
- name: create env file
copy: src=java.sh dest=/etc/profile.d/
cat files/java.sh
export JAVA_HOME=/usr


浙公网安备 33010602011771号