first commit
This commit is contained in:
commit
06f4bf327a
121
README.md
Normal file
121
README.md
Normal file
@ -0,0 +1,121 @@
|
||||
# ansible 常用 roles
|
||||
|
||||
## nignx
|
||||
- disable_ip.yml 注释 upstream 中的一个 ip,停止对该地址的反代
|
||||
- enable_ip.yml 取消注释 upstream 中的一个 ip,开启对该地址的反代
|
||||
- start_service.yml 启动 nginx 服务
|
||||
- stop_service.yml 停止 nginx 服务
|
||||
- restart_service.yml 重启 nginx 服务
|
||||
- update_web.yml 更新一个 web 目录
|
||||
- revert_web.yml 回滚一次 web 目录
|
||||
- 常用操作
|
||||
- 更新 nginx 的 web 包
|
||||
```bash
|
||||
ansible-playbook nginx.yml -e "
|
||||
host=$nginx_host
|
||||
task_name=update_zip
|
||||
app_name=$web_name
|
||||
"
|
||||
```
|
||||
- 回滚 nginx 的 web 包
|
||||
```bash
|
||||
ansible-playbook nginx.yml -e "
|
||||
host=$nginx_host
|
||||
task_name=revert_zip
|
||||
app_name=$web_name
|
||||
"
|
||||
```
|
||||
|
||||
## tomcat
|
||||
- start_service.yml 启动 tomcat 服务
|
||||
- stop_service.yml 关闭 tomcat 服务
|
||||
- restart_service.yml 重启 tomcat 服务
|
||||
- revert_war.yml 回滚一个 war 包格式的 webapp
|
||||
- update_war.yml 更新一个 war 包格式的 webapp
|
||||
- revert_zip.yml 回滚一个 zip 包格式的 webapp
|
||||
- update_zip.yml 更新一个 zip 包格式的 webapp
|
||||
- 常用操作
|
||||
- 重启 tomcat
|
||||
```bash
|
||||
ansible-playbook tomcat.yml -e "
|
||||
host=$tomcat_host
|
||||
task_name=restart_service
|
||||
"
|
||||
```
|
||||
- 更新 zip 包
|
||||
```bash
|
||||
ansible-playbook tomcat.yml -e "
|
||||
host=$tomcat_host
|
||||
task_name=update_zip
|
||||
app_name=$app_name
|
||||
"
|
||||
```
|
||||
- 回滚 zip 包
|
||||
```bash
|
||||
ansible-playbook tomcat.yml -e "
|
||||
host=$tomcat_host
|
||||
task_name=revert_zip
|
||||
app_name=$app_name
|
||||
"
|
||||
```
|
||||
- 更新 war 包
|
||||
```bash
|
||||
ansible-playbook tomcat.yml -e "
|
||||
host=$tomcat_host
|
||||
task_name=update_war
|
||||
app_name=$app_name
|
||||
"
|
||||
```
|
||||
- 回滚 war 包
|
||||
```bash
|
||||
ansible-playbook tomcat.yml -e "
|
||||
host=$tomcat_host
|
||||
task_name=revert_war
|
||||
app_name=$app_name
|
||||
"
|
||||
```
|
||||
|
||||
## jar
|
||||
- revert_jar.yml 回滚 jar 包
|
||||
- update_jar.yml 更新 jar 包
|
||||
- start_service.yml 启动 jar 包
|
||||
- stop_service.yml 停止 jar 包
|
||||
- 常用操作
|
||||
- 更新 jar 包
|
||||
```bash
|
||||
ansible-playbook jar.yml -e "
|
||||
host=$jar_host
|
||||
task_name=update_jar
|
||||
jar_name=$jar_name
|
||||
"
|
||||
```
|
||||
- 回滚 jar 包
|
||||
```bash
|
||||
ansible-playbook jar.yml -e "
|
||||
host=$jar_host
|
||||
task_name=revert_jar
|
||||
jar_name=$jar_name
|
||||
"
|
||||
```
|
||||
|
||||
## apk
|
||||
- revert_apk.yml 回滚 apk 包
|
||||
- update_apk.yml 更新 apk 包
|
||||
- 重用操作
|
||||
- 更新 apk 包
|
||||
```bash
|
||||
ansible-playbook apk.yml -e "
|
||||
host=$apk_host
|
||||
task_name=update_apk
|
||||
apk_name=$apk_name
|
||||
"
|
||||
```
|
||||
- 回滚 apk 包
|
||||
```bash
|
||||
ansible-playbook apk.yml -e "
|
||||
host=$apk_host
|
||||
task_name=revert_apk
|
||||
apk_name=$apk_name
|
||||
"
|
||||
```
|
||||
|
11
playbooks/apk.yml
Normal file
11
playbooks/apk.yml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
- hosts: "{{host}}"
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- import_role:
|
||||
name: apk
|
||||
when: task_name is match('^(update|revert)_apk$')
|
||||
vars:
|
||||
task: "{{task_name}}"
|
||||
apk: "{{apk_name}}"
|
||||
|
23
playbooks/jar-revert.yml
Normal file
23
playbooks/jar-revert.yml
Normal file
@ -0,0 +1,23 @@
|
||||
- hosts: "{{host}}"
|
||||
gather_facts: false
|
||||
vars:
|
||||
repo: "repo_name"
|
||||
remote_dir: "/path/to/deploy_dir"
|
||||
tasks:
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: stop_service
|
||||
- name: clean {{repo}} logs
|
||||
shell: cd {{remote_dir}}/../logs/ && rm -rf {{repo}}
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: revert_jar
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: start_service
|
||||
- name: wait for {{repo}} to start completely
|
||||
shell: while sleep 2; do grep -m 1 '(JVM running for [0-9\.]\+)$' {{remote_dir}}/../logs/{{repo}}/{{repo}}.log && break; done
|
||||
|
44
playbooks/jar-update.yml
Normal file
44
playbooks/jar-update.yml
Normal file
@ -0,0 +1,44 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
gather_facts: true
|
||||
vars:
|
||||
svn_url: "svn://svn_server/path/to/repo_name"
|
||||
f_make: true
|
||||
tasks:
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: svn
|
||||
- block:
|
||||
- debug:
|
||||
msg: "Up_to_date, unnecessary to continue."
|
||||
- meta: end_play
|
||||
when: repo_exists.stdout != '' and update_result.stdout == '' and not f_make
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: mvn
|
||||
|
||||
- hosts: "{{host}}"
|
||||
gather_facts: false
|
||||
vars:
|
||||
repo: "repo_name"
|
||||
remote_dir: "/path/to/deploy_dir"
|
||||
tasks:
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: stop_service
|
||||
- name: clean {{repo}} logs
|
||||
shell: cd {{remote_dir}}/../logs/ && rm -rf {{repo}}
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: update_jar
|
||||
- import_role:
|
||||
name: jar
|
||||
vars:
|
||||
task: start_service
|
||||
- name: wait for {{repo}} to start completely
|
||||
shell: while sleep 2; do grep -m 1 '(JVM running for [0-9\.]\+)$' {{remote_dir}}/../logs/{{repo}}/{{repo}}.log && break; done
|
||||
|
22
playbooks/python.yml
Normal file
22
playbooks/python.yml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
- hosts: "{{host}}"
|
||||
gather_facts: true
|
||||
vars:
|
||||
svn_url: "svn://xxxx/xxxx"
|
||||
remote_path: "/path/to/deploy_dir"
|
||||
tasks:
|
||||
- import_role:
|
||||
name: python
|
||||
vars:
|
||||
task: svn
|
||||
- import_role:
|
||||
name: python
|
||||
vars:
|
||||
task: stop_service
|
||||
- name: wait 4s before starting service
|
||||
shell: sleep 4
|
||||
- import_role:
|
||||
name: python
|
||||
vars:
|
||||
task: start_service
|
||||
|
42
playbooks/tomcat.yml
Normal file
42
playbooks/tomcat.yml
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
- hosts: nginx1:nginx2
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# 取消 nginx 对该 tomcat 服务器的反代
|
||||
- import_role:
|
||||
name: nginx
|
||||
vars:
|
||||
task: disable_ip
|
||||
ip: "{{hostvars[host]['ansible_ssh_host']}}"
|
||||
|
||||
- hosts: "{{host}}"
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# 停止 tomcat 服务
|
||||
- import_role:
|
||||
name: tomcat
|
||||
vars:
|
||||
task: stop_service
|
||||
# 更新 webapp
|
||||
- import_role:
|
||||
name: tomcat
|
||||
when: task_name|lower != "restart_service"
|
||||
vars:
|
||||
task: "{{task_name}}"
|
||||
app: "{{app_name}}"
|
||||
# 启动 tomcat 服务
|
||||
- import_role:
|
||||
name: tomcat
|
||||
vars:
|
||||
task: start_service
|
||||
|
||||
- hosts: nginx1:nginx2
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# 启用 nginx 对 tomcat 服务器的反代
|
||||
- import_role:
|
||||
name: nginx
|
||||
vars:
|
||||
task: enable_ip
|
||||
ip: "{{hostvars[host]['ansible_ssh_host']}}"
|
||||
|
18
playbooks/web-revert.yml
Normal file
18
playbooks/web-revert.yml
Normal file
@ -0,0 +1,18 @@
|
||||
- hosts: "{{host}}"
|
||||
gather_facts: false
|
||||
vars:
|
||||
repo: "repo_name"
|
||||
remote_dir: "/path/to/deploy_dir"
|
||||
tasks:
|
||||
- name: check whether {{repo}}.bak exists
|
||||
shell: ls {{repo}}.bak || true
|
||||
args:
|
||||
chdir: "{{remote_dir}}"
|
||||
register: repo_bak_exists
|
||||
- name: restore old {{repo}}
|
||||
shell: cd {{remote_dir}} && rm -rf {{repo}} && mv {{repo}}.bak {{repo}}
|
||||
when: repo_bak_exists.stdout != ''
|
||||
- debug:
|
||||
msg: "Not found {{repo}}.bak, quit"
|
||||
when: repo_bak_exists.stdout == ''
|
||||
|
30
playbooks/web-update.yml
Normal file
30
playbooks/web-update.yml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
gather_facts: true
|
||||
vars:
|
||||
repo: "repo_name"
|
||||
root_dir: "/path/to/svn_repo_dir"
|
||||
tasks:
|
||||
- name: update {{repo}} from svn
|
||||
shell: cd {{root_dir}}/{{repo}} && svn update {{repo}}.zip &>> {{ansible_env.SSH_TTY}}
|
||||
|
||||
- hosts: "{{host}}"
|
||||
gather_facts: false
|
||||
vars:
|
||||
repo: "repo_name"
|
||||
root_dir: "/path/to/svn_repo_dir"
|
||||
remote_dir: "/path/to/deploy_dir"
|
||||
tasks:
|
||||
- name: upload {{repo}}.zip
|
||||
copy: src={{root_dir}}/{{repo}}/{{repo}}.zip dest={{remote_dir}}/{{repo}}.zip
|
||||
- name: check whether {{repo}} exists
|
||||
shell: ls -d {{repo}} || true
|
||||
args:
|
||||
chdir: "{{remote_dir}}"
|
||||
register: repo_exists
|
||||
- name: create bakup
|
||||
shell: cd {{remote_dir}} && rm -rf {{repo}}.bak && mv {{repo}} {{repo}}.bak
|
||||
when: repo_exists.stdout != ''
|
||||
- name: create new {{repo}}
|
||||
shell: cd {{remote_dir}} && unzip {{repo}}.zip && rm -f {{repo}}.zip
|
||||
|
5
roles/apk/defaults/main.yml
Normal file
5
roles/apk/defaults/main.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
task: none
|
||||
root_dir: /attachment
|
||||
apk: none
|
||||
|
3
roles/apk/tasks/main.yml
Normal file
3
roles/apk/tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- import_tasks: "{{task|lower}}.yml"
|
||||
|
9
roles/apk/tasks/revert_apk.yml
Normal file
9
roles/apk/tasks/revert_apk.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: check whether {{apk}}.apk.bak exists
|
||||
shell: cd {{root_dir}} && [ -f {{apk}}.apk.bak ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: revert {{apk}}.apk.bak
|
||||
when: result is succeeded
|
||||
shell: cd {{root_dir}} && rm -f {{apk}}.apk && mv {{apk}}.apk.bak {{apk}}.apk
|
||||
|
15
roles/apk/tasks/update_apk.yml
Normal file
15
roles/apk/tasks/update_apk.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: upload {{apk}}.apk.zip
|
||||
copy: src=/gxfp/transfer/{{apk}}.apk.zip dest={{root_dir}}/{{apk}}.zip
|
||||
- name: check whether {{apk}}.apk exists
|
||||
shell: cd {{root_dir}} && [ -f {{apk}}.apk ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: remove old {{apk}}.apk.bak
|
||||
shell: cd {{root_dir}} && rm -f {{apk}}.apk.bak
|
||||
- name: create current {{apk}}.apk.bak
|
||||
shell: cd {{root_dir}} && mv {{apk}}.apk {{apk}}.apk.bak
|
||||
when: result is succeeded
|
||||
- name: unzip new {{apk}}.zip
|
||||
shell: cd {{root_dir}} && unzip -o -qq {{apk}}.zip && rm -f {{apk}}.zip
|
||||
|
10
roles/jar/defaults/main.yml
Normal file
10
roles/jar/defaults/main.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
root_dir: "/home/repos"
|
||||
svn_opt: "--username xxxx --password xxxx --non-interactive"
|
||||
target_dir: "{{root_dir}}/{{repo}}/target"
|
||||
svn_url: "svn://xxx.xxx.xxx.xxx/xx/xx"
|
||||
svn_opt: ""
|
||||
repo: "{{svn_url|basename}}"
|
||||
remote_dir: "/path/to/deploy/remote"
|
||||
f_make: false
|
||||
|
3
roles/jar/tasks/main.yml
Normal file
3
roles/jar/tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- import_tasks: "{{task|lower}}.yml"
|
||||
|
4
roles/jar/tasks/mvn.yml
Normal file
4
roles/jar/tasks/mvn.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: build with mvn
|
||||
shell: cd {{root_dir}}/{{repo}} && mvn clean package &>> {{ansible_env.SSH_TTY}}
|
||||
|
9
roles/jar/tasks/revert_jar.yml
Normal file
9
roles/jar/tasks/revert_jar.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: check whether {{repo}}.jar.bak exists
|
||||
shell: cd {{remote_dir}} && [ -f {{repo}}.jar.bak ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: revert {{repo}}.jar.bak
|
||||
when: result is succeeded
|
||||
shell: cd {{remote_dir}} && rm -f {{repo}}.jar && mv {{repo}}.jar.bak {{repo}}.jar
|
||||
|
6
roles/jar/tasks/start_service.yml
Normal file
6
roles/jar/tasks/start_service.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: start {{repo}}
|
||||
service: name={{repo}} state=started
|
||||
#- name: wait for {{repo}} to start completely
|
||||
#shell: while sleep 2; do grep -m 1 '(JVM running for [0-9\.]\+)$' {{remote_dir}}/../logs/{{repo}}.log && break; done
|
||||
|
8
roles/jar/tasks/stop_service.yml
Normal file
8
roles/jar/tasks/stop_service.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: wait 2s to free connections
|
||||
shell: sleep 2
|
||||
- name: stop {{repo}}
|
||||
service: name={{repo}} state=stopped
|
||||
#- name: clean {{repo}} logs
|
||||
#shell: cd {{remote_dir}}/../logs/{{repo}} && rm -f *
|
||||
|
16
roles/jar/tasks/svn.yml
Normal file
16
roles/jar/tasks/svn.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: check whether {{repo}} exists
|
||||
shell: ls {{repo}}/.svn || true
|
||||
args:
|
||||
chdir: "{{root_dir}}"
|
||||
register: repo_exists
|
||||
|
||||
- name: checkout {{repo}} from svn
|
||||
shell: cd {{root_dir}} && rm -rf {{repo}} && svn checkout {{svn_opt}} {{svn_url}} {{repo}} &>> {{ansible_env.SSH_TTY}}
|
||||
when: repo_exists.stdout == ''
|
||||
|
||||
- name: update {{repo}} from svn
|
||||
shell: cd {{root_dir}}/{{repo}} && svn update {{svn_opt}} &>> {{ansible_env.SSH_TTY}}
|
||||
register: update_result
|
||||
when: repo_exists.stdout != ''
|
||||
|
18
roles/jar/tasks/update_jar.yml
Normal file
18
roles/jar/tasks/update_jar.yml
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: upload {{repo}}.jar
|
||||
copy: src={{target_dir}}/{{repo}}.jar dest={{remote_dir}}/{{repo}}.jar.new
|
||||
|
||||
- name: remove old {{repo}}.jar.bak
|
||||
shell: cd {{remote_dir}} && rm -f {{repo}}.jar.bak
|
||||
|
||||
- name: check whether {{repo}}.jar exists
|
||||
shell: cd {{remote_dir}} && ls {{repo}}.jar || true
|
||||
register: jar_exists
|
||||
|
||||
- name: create current {{repo}}.jar.bak
|
||||
shell: cd {{remote_dir}} && mv {{repo}}.jar {{repo}}.jar.bak
|
||||
when: jar_exists.stdout != ''
|
||||
|
||||
- name: create new {{repo}}.jar
|
||||
shell: cd {{remote_dir}} && mv {{repo}}.jar.new {{repo}}.jar
|
||||
|
6
roles/nginx/defaults/main.yml
Normal file
6
roles/nginx/defaults/main.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
task: none
|
||||
ip: none
|
||||
root_dir: /html
|
||||
web: none
|
||||
|
4
roles/nginx/tasks/disable_ip.yml
Normal file
4
roles/nginx/tasks/disable_ip.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: comment {{ip}} in upstream.conf
|
||||
shell: cd /etc/nginx/conf.d && sed -i "/^ *server {{ip}}/s/^/#/" upstream.conf && nginx -s reload
|
||||
|
4
roles/nginx/tasks/enable_ip.yml
Normal file
4
roles/nginx/tasks/enable_ip.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: uncomment {{ip}} in upstream.conf
|
||||
shell: cd /etc/nginx/conf.d && sed -i "/^# *server {{ip}}/s/^#//" upstream.conf && nginx -s reload
|
||||
|
3
roles/nginx/tasks/main.yml
Normal file
3
roles/nginx/tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- import_tasks: "{{task|lower}}.yml"
|
||||
|
4
roles/nginx/tasks/restart_service.yml
Normal file
4
roles/nginx/tasks/restart_service.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: restart nginx
|
||||
service: name=nginx state=restarted
|
||||
|
4
roles/nginx/tasks/start_service.yml
Normal file
4
roles/nginx/tasks/start_service.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: start nginx
|
||||
service: name=nginx state=started
|
||||
|
4
roles/nginx/tasks/stop_service.yml
Normal file
4
roles/nginx/tasks/stop_service.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: stop nginx
|
||||
service: name=nginx state=stopped
|
||||
|
6
roles/python/defaults/main.yml
Normal file
6
roles/python/defaults/main.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
svn_url: "svn://xxx.xxx.xxx.xxx/xx/xx"
|
||||
svn_opt: "--username xxxx --password xxxx --non-interactive"
|
||||
repo: "{{svn_url|basename}}"
|
||||
remote_dir: "/path/to/deploy/remote"
|
||||
|
3
roles/python/tasks/main.yml
Normal file
3
roles/python/tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- import_tasks: "{{task|lower}}.yml"
|
||||
|
6
roles/python/tasks/start_service.yml
Normal file
6
roles/python/tasks/start_service.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: start {{repo}}
|
||||
service: name={{repo}} state=started
|
||||
#- name: wait for {{repo}} to start completely
|
||||
#shell: while sleep 2; do grep -m 1 '(JVM running for [0-9\.]\+)$' {{remote_dir}}/../logs/{{repo}}.log && break; done
|
||||
|
8
roles/python/tasks/stop_service.yml
Normal file
8
roles/python/tasks/stop_service.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: wait 2s to free connections
|
||||
shell: sleep 2
|
||||
- name: stop {{repo}}
|
||||
service: name={{repo}} state=stopped
|
||||
#- name: clean {{repo}} logs
|
||||
#shell: cd {{remote_dir}}/../logs/{{repo}} && rm -f *
|
||||
|
16
roles/python/tasks/svn.yml
Normal file
16
roles/python/tasks/svn.yml
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: check whether {{repo}} exists
|
||||
shell: ls {{repo}}/.svn || true
|
||||
args:
|
||||
chdir: "{{remote_dir}}"
|
||||
register: repo_exists
|
||||
|
||||
- name: checkout {{repo}} from svn
|
||||
shell: cd {{remote_dir}} && rm -rf {{repo}} && svn checkout {{svn_opt}} {{svn_url}} {{repo}} &>> {{ansible_env.SSH_TTY}}
|
||||
when: repo_exists.stdout == ''
|
||||
|
||||
- name: update {{repo}} from svn
|
||||
shell: cd {{remote_dir}}/{{repo}} && svn update {{svn_opt}} &>> {{ansible_env.SSH_TTY}}
|
||||
register: update_result
|
||||
when: repo_exists.stdout != ''
|
||||
|
5
roles/tomcat/defaults/main.yml
Normal file
5
roles/tomcat/defaults/main.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
task: none
|
||||
app: none
|
||||
root_dir: /tomcat
|
||||
|
3
roles/tomcat/tasks/main.yml
Normal file
3
roles/tomcat/tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- import_tasks: "{{task|lower}}.yml"
|
||||
|
4
roles/tomcat/tasks/restart_service.yml
Normal file
4
roles/tomcat/tasks/restart_service.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- debug:
|
||||
msg: "nothing to do ..."
|
||||
|
9
roles/tomcat/tasks/revert_war.yml
Normal file
9
roles/tomcat/tasks/revert_war.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: check whether {{app}}.war.bak exists
|
||||
shell: cd {{root_dir}}/webapps/ && [ -f {{app}}.war.bak ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: revert {{app}}.war.bak
|
||||
when: result is succeeded
|
||||
shell: cd {{root_dir}}/webapps/ && rm -rf {{app}}.war {{app}} && mv {{app}}.war.bak {{app}}.war
|
||||
|
9
roles/tomcat/tasks/revert_zip.yml
Normal file
9
roles/tomcat/tasks/revert_zip.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: check whether {{app}}_backup.tgz exists
|
||||
shell: cd {{root_dir}}/webapps/ && [ -f {{app}}_backup.tgz ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: revert {{app}}_backup.tgz
|
||||
when: result is succeeded
|
||||
shell: cd {{root_dir}}/webapps/ && rm -rf {{app}} && tar zxf {{app}}_backup.tgz && rm -f {{app}}_backup.tgz
|
||||
|
8
roles/tomcat/tasks/start_service.yml
Normal file
8
roles/tomcat/tasks/start_service.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: start tomcat
|
||||
service: name=tomcat state=started
|
||||
- name: wait for tomcat to start completely
|
||||
shell: while sleep 2; do grep -m 1 'Server startup in [0-9]\+ ms$' {{root_dir}}/logs/catalina.out && break; done
|
||||
- name: link /dev/null to catalina.out
|
||||
shell: cd {{root_dir}}/logs/ && rm -f catalina.out && ln -sf /dev/null catalina.out
|
||||
|
8
roles/tomcat/tasks/stop_service.yml
Normal file
8
roles/tomcat/tasks/stop_service.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: wait 4s to free tomcat connections
|
||||
shell: sleep 4
|
||||
- name: stop tomcat
|
||||
service: name=tomcat state=stopped
|
||||
- name: clean catalina.out
|
||||
shell: cd {{root_dir}}/logs/ && rm -f catalina.out && touch catalina.out
|
||||
|
15
roles/tomcat/tasks/update_war.yml
Normal file
15
roles/tomcat/tasks/update_war.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: upload {{app}}.zip
|
||||
copy: src=/var/transfer/{{app}}.zip dest={{root_dir}}/webapps/{{app}}.zip
|
||||
- name: check whether {{app}}.war exists
|
||||
shell: cd {{root_dir}}/webapps/ && [ -f {{app}}.war ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: remove old {{app}}.war.bak
|
||||
shell: cd {{root_dir}}/webapps/ && rm -rf {{app}}.war.bak {{app}}
|
||||
- name: create current {{app}}.war.bak
|
||||
when: result is succeeded
|
||||
shell: cd {{root_dir}}/webapps/ && mv {{app}}.war {{app}}.war.bak
|
||||
- name: unzip new {{app}}.zip
|
||||
shell: cd {{root_dir}}/webapps/ && unzip -o -qq {{app}}.zip && rm -f {{app}}.zip
|
||||
|
15
roles/tomcat/tasks/update_zip.yml
Normal file
15
roles/tomcat/tasks/update_zip.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: upload {{app}}.zip
|
||||
copy: src=/var/transfer/{{app}}.zip dest={{root_dir}}/webapps/{{app}}.zip
|
||||
- name: check whether {{app}} exists
|
||||
shell: cd {{root_dir}}/webapps/ && [ -d {{app}} ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: remove old {{app}}_backup.tgz
|
||||
shell: cd {{root_dir}}/webapps/ && rm -rf {{app}}_backup.tgz
|
||||
- name: create current {{app}}_backup.tgz
|
||||
when: result is succeeded
|
||||
shell: cd {{root_dir}}/webapps/ && tar zcf {{app}}_backup.tgz {{app}}/
|
||||
- name: unzip new {{app}}.zip
|
||||
shell: cd {{root_dir}}/webapps/ && unzip -o -qq {{app}}.zip && rm -f {{app}}.zip
|
||||
|
8
roles/web/defaults/main.yml
Normal file
8
roles/web/defaults/main.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
root_dir: "/home/repos"
|
||||
svn_opt: "--username xxxx --password xxxx --non-interactive"
|
||||
svn_url: "svn://xxx.xxx.xxx.xxx/xx/xx"
|
||||
repo: "{{svn_url|basename}}"
|
||||
remote_dir: "/path/to/deploy/remote"
|
||||
f_make: false
|
||||
|
3
roles/web/tasks/main.yml
Normal file
3
roles/web/tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- import_tasks: "{{task|lower}}.yml"
|
||||
|
4
roles/web/tasks/node.yml
Normal file
4
roles/web/tasks/node.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: build with node
|
||||
shell: cd {{root_dir}}/{{repo}} && mvn clean package &>> {{ansible_env.SSH_TTY}}
|
||||
|
9
roles/web/tasks/revert_jar.yml
Normal file
9
roles/web/tasks/revert_jar.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: check whether {{repo}}.jar.bak exists
|
||||
shell: cd {{remote_dir}} && [ -f {{repo}}.jar.bak ]
|
||||
ignore_errors: true
|
||||
register: result
|
||||
- name: revert {{repo}}.jar.bak
|
||||
when: result is succeeded
|
||||
shell: cd {{remote_dir}} && rm -f {{repo}}.jar && mv {{repo}}.jar.bak {{repo}}.jar
|
||||
|
6
roles/web/tasks/start_service.yml
Normal file
6
roles/web/tasks/start_service.yml
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: start {{repo}}
|
||||
service: name={{repo}} state=started
|
||||
#- name: wait for {{repo}} to start completely
|
||||
#shell: while sleep 2; do grep -m 1 '(JVM running for [0-9\.]\+)$' {{remote_dir}}/../logs/{{repo}}.log && break; done
|
||||
|
8
roles/web/tasks/stop_service.yml
Normal file
8
roles/web/tasks/stop_service.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: wait 2s to free connections
|
||||
shell: sleep 2
|
||||
- name: stop {{repo}}
|
||||
service: name={{repo}} state=stopped
|
||||
#- name: clean {{repo}} logs
|
||||
#shell: cd {{remote_dir}}/../logs/{{repo}} && rm -f *
|
||||
|
15
roles/web/tasks/svn.yml
Normal file
15
roles/web/tasks/svn.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: check whether {{repo}} exists
|
||||
shell: cd {{root_dir}} && [ -d {{repo}}/.svn ]
|
||||
ignore_errors: true
|
||||
register: repo_exists
|
||||
|
||||
- name: checkout {{repo}} from svn
|
||||
shell: cd {{root_dir}} && rm -rf {{repo}} && svn checkout {{svn_opt}} {{svn_url}} {{repo}} &>> {{ansible_env.SSH_TTY}}
|
||||
when: repo_exists is failed
|
||||
|
||||
- name: update {{repo}} from svn
|
||||
shell: cd {{root_dir}}/{{repo}} && svn update {{svn_opt}} &>> {{ansible_env.SSH_TTY}}
|
||||
register: update_result
|
||||
when: repo_exists is succeeded
|
||||
|
10
roles/web/tasks/update_jar.yml
Normal file
10
roles/web/tasks/update_jar.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: upload {{repo}}.jar
|
||||
copy: src={{root_dir}}/{{repo}}/target/{{repo}}.jar dest={{remote_dir}}/{{repo}}.jar.new
|
||||
- name: remove old {{repo}}.jar.bak
|
||||
shell: cd {{remote_dir}} && rm -f {{repo}}.jar.bak
|
||||
- name: create current {{repo}}.jar.bak
|
||||
shell: cd {{remote_dir}} && mv {{repo}}.jar {{repo}}.jar.bak
|
||||
- name: create new {{repo}}.jar
|
||||
shell: cd {{remote_dir}} && mv {{repo}}.jar.new {{repo}}.jar
|
||||
|
3
roles/zookeeper/defaults/main.yml
Normal file
3
roles/zookeeper/defaults/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
task: none
|
||||
|
8
roles/zookeeper/tasks/cat_myid.yml
Normal file
8
roles/zookeeper/tasks/cat_myid.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: cat zookeeper id
|
||||
shell: cat /data/zookeeper/data/myid
|
||||
register: output
|
||||
- name: print zookeeper id
|
||||
debug:
|
||||
msg: "zookeeper id: {{ output.stdout }}"
|
||||
|
3
roles/zookeeper/tasks/main.yml
Normal file
3
roles/zookeeper/tasks/main.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
- import_tasks: "{{task|lower}}.yml"
|
||||
|
4
roles/zookeeper/tasks/restart_service.yml
Normal file
4
roles/zookeeper/tasks/restart_service.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: restart zookeeper
|
||||
service: name=zookeeper state=restarted
|
||||
|
4
roles/zookeeper/tasks/start_service.yml
Normal file
4
roles/zookeeper/tasks/start_service.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: start zookeeper
|
||||
service: name=zookeeper state=started
|
||||
|
4
roles/zookeeper/tasks/stop_service.yml
Normal file
4
roles/zookeeper/tasks/stop_service.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
- name: stop zookeeper
|
||||
service: name=zookeeper state=stopped
|
||||
|
Loading…
x
Reference in New Issue
Block a user