ansible playbook 例子(实战)
实战经验是通过Jenkins集成ansible插件做项目代码发布,以下是当时的playbook脚本
jenkins 执行的ansible执行类似:
/usr/bin/ansible-playbook /etc/ansible/playbook/deploy.houtai.yml -l houtai -f 5 --private-key /tmp/ssh11525745722860273680.key -u root -e srcdir=/var/lib/jenkins/workspace/www.com/ -e destdir=/web/www/ -e opts=--exclude-from=/etc/ansible/playbook/deploy.exclude --become-user rootdeploy.houtai.yml 后台网站发布
- hosts: test,online
remote_user: root
tasks:
- name: deploy code to remote server
synchronize:
src: '{{ srcdir }}'
dest: '{{ destdir }}'
mode: push
dirs: yes
owner: no
group: no
copy_links: no
delete: no
rsync_opts: '{{ opts | default("") }}'
- name: copy files if not existing, and delete extraneous files
synchronize:
src: '{{ srcdir }}/{{ item }}'
dest: '{{ destdir }}/{{ item }}'
mode: push
dirs: yes
owner: no
group: no
copy_links: no
delete: yes
rsync_opts: '--ignore-existing'
with_items:
- common/coreCss/
- common/coreJs/
- common/css/
- common/js/
ignore_errors: true
- name: change files mode
file:
path: '{{ destdir }}/{{ item.0 }}'
mode: '{{ item.1 }}'
with_list:
- ['protected/yiic', '0755']
ignore_errors: true
- name: opcache_reset
shell: /usr/bin/php -r 'opcache_reset();'
ignore_errors: truedeploy.yml 用户网站发布
- hosts: test,online
remote_user: root
tasks:
- name: deploy code to remote server
synchronize:
src: '{{ srcdir }}'
dest: '{{ destdir }}'
mode: push
dirs: yes
owner: no
group: no
copy_links: no
delete: no
rsync_opts: '{{ opts | default("") }}'
- name: copy files if not existing, and delete extraneous files
synchronize:
src: '{{ srcdir }}/{{ item }}'
dest: '{{ destdir }}/{{ item }}'
mode: push
dirs: yes
owner: no
group: no
copy_links: no
delete: yes
rsync_opts:
- '--ignore-existing'
with_items:
- common/coreCss/
- common/coreJs/
- common/css/
- common/js/
- pay/alipayMobile/alipay.config.php
- pay/alipayPC/alipay.config.php
- pay/singleTradeQuery/alipay.config.php
- wxpay/lib/WxPay.Config.php
ignore_errors: true
- name: change files mode
file:
path: '{{ destdir }}/{{ item.0 }}'
mode: '{{ item.1 }}'
with_list:
- ['protected/yiic', '0755']
ignore_errors: truedeploy.exclude 用于rsync同步文件时的忽略文件列表
.git
.idea
.user.ini
lextab.py
yacctab.py
/assets
/attachments
/uploads
node_modules
/protected/runtime
pay/alipayMobile/alipay.config.php
pay/alipayPC/alipay.config.php
pay/singleTradeQuery/alipay.config.php
#wxpay/lib/WxPay.Config.php版权属于:Joyber
本文链接:https://blog.qqvbc.com/default/817.html
转载时须注明出处及本声明