playbook代码
#判断域名目录是否存在
- name: judge a domains-file is exist
shell: ls /export/servers/nginx/conf/domains/user-defined-domains
ignore_errors: True
register: result
tags: add_udd
#创建用户自定义域名目录
- name: mkdir Domains_Dir
file: dest=/export/servers/nginx/conf/domains/user-defined-domains state=directory
when: result|failed
tags: add_udd
#判断日志目录是否存在
- name: judge a Logs-dir is exist
shell: ls /export/Logs/nginx/oss/user-defined-domains
ignore_errors: True
register: Logs
tags: add_udd
#创建用户自定义域名日志目录
- name: mkdir Logs_DIR
file: dest=/export/Logs/nginx/oss/user-defined-domains state=directory
when: Logs|failed
tags: add_udd
#生成域名配置文件
- name: add user-defined-domains
template: src=user-defined-domains/add.user-defined-domains dest=/export/servers/nginx/conf/domains/user-defined-domains/{{ Domains }}
tags: add_udd
#创建证书目录
- name: mkdir Certificate_Dir
file: dest=/export/servers/nginx/conf/user_certificate state=directory
tags: add_udd
#拷贝证书文件
- name: add certificate_name
copy: src=user_certificate/{{ certificate_name }} dest=/export/servers/nginx/conf/user_certificate/
when: certificate_name is defined
tags: add_udd
- name: add certificate_key
copy: src=user_certificate/{{ certificate_key }} dest=/export/servers/nginx/conf/user_certificate/
when: certificate_key is defined
tags: add_udd
#判断文件内容是否包含user-defined-domains
- name: judge a include is exist
shell: cat /export/servers/nginx/conf/nginx.conf | grep user-defined-domains
ignore_errors: True
register: Include
tags: add_udd
#添加include 域名
- name: Modify nginx.conf,add in
lineinfile: dest=/export/servers/nginx/conf/nginx.conf state=present line=’ include domains/user-defined-domains/;’ regexp="^PermitEmptyPasswords" insertafter="\s.*upstream;"
when: Include|failed
tags: add_udd
#reload
- name: reload–nginx
raw: /export/servers/nginx/sbin/nginx -c /export/servers/nginx/conf/nginx.conf -p /export/servers/nginx -s reload
tags: add_udd
jenkins配置
jenkins build 完成代码
#!/bin/bash
set -x
DIR="/export/yangfan/cloud-storage-playbooks"
echo "--------------------输出IP_LIST---------"
echo $IP_LIST
echo "--------------------输出IDC-------------"
echo "$IDC"
#格式化IP_LIST
if [[ $IP_LIST =~ "," || $IP_LIST =~ ";" || $IP_LIST =~ ":" ]];then IP=$(echo $IP_LIST | sed -r 's/,/ /g' | sed -r 's/;/ /g' | sed -r 's/:/ /g'); else IP=$IP_LIST ;fi
echo "--------------------打印IP---------------"
echo ${IP}
echo "-----------------生成随机数HOST------------"
HOST=host_$(date +%s)
echo [run_initialize] >${DIR}/${HOST}
echo ${IP} | sed 's/[ ]\+/\n/g' >>${DIR}/${HOST}
echo [run_initialize:vars] >>${DIR}/${HOST}
echo Domains=${DOMAINS} >>${DIR}/${HOST}
echo certificate_name=${Cerertificate_name} >>${DIR}/${HOST}
echo certificate_key=${Cerertificate_key} >>${DIR}/${HOST}
cd $DIR
ansible-playbook -i ${HOST} initialize.yml --tags=add_udd -f 100