ansible-playbook+jenkins实现自动新增域名

本示例自动新增域名功能支持自定义域名可指定域名前缀、后缀、所属region、az、header等信息

playbook

- name: judge a nginx_dir is exits
shell: ls /export/servers/nginx/conf
ignore_errors: True
register: result
tags: add_domain

- name: mkdir nginx
file: dest=/export/servers/nginx/ state=directory
when: result|failed
tags: add_domain

- name: copy nginx
copy: src=nginx/nginx_jss_pure.tar.gz dest=/export/servers/
when: result|failed
tags: add_domain

- name: untag.gz nginx
unarchive: src=/export/servers/nginx_jss_pure.tar.gz dest=/export/servers/nginx copy=no
when: result|failed
tags: add_domain

- name: mkdir log_dir
file: dest=/export/servers/nginx/logs/{{ item }} state=directory
when: Generic is undefined
with_items:
- “{{ DN_Prefix }}.{{ DN_Suffix }}”
tags: add_domain

- name: mkdir log_dir
file: dest=/export/servers/nginx/logs/{{ item }} state=directory
when: Generic is defined and Generic == ‘bucket’
with_items:
- “bucket.{{ DN_Prefix }}.{{ DN_Suffix }}”
tags: add_domain

- name: add.bucket.domain.header
template: src=new_add_domain/add.bucket.domain.header dest=/export/servers/nginx/conf/domains/bucket.{{ DN_Prefix }}.{{ env_vars[env][idc][‘Availability_Zone’] }}.{{ DN_Suffix }}
when: Generic is defined and header is defined and header == ‘true’
tags: add_domain

- name: add.bucket.domain
template: src=new_add_domain/add.bucket.domainn dest=/export/servers/nginx/conf/domains/bucket.{{ DN_Prefix }}.{{ env_vars[env][idc][‘Availability_Zone’] }}.{{ DN_Suffix }}
when: Generic is defined and header is defined and header == ‘false’
tags: add_domain

- name: add.domain.header
template: src=new_add_domain/add.domain.header dest=/export/servers/nginx/conf/domains/{{ DN_Prefix }}.{{ env_vars[env][idc][‘Availability_Zone’] }}.{{ DN_Suffix }}
when: Generic is undefined and header is defined and header == ‘true’
tags: add_domain

- name: add.domain
template: src=new_add_domain/add.domain dest=/export/servers/nginx/conf/domains/{{ DN_Prefix }}.{{ env_vars[env][idc][‘Availability_Zone’] }}.{{ DN_Suffix }}
when: Generic is undefined and header is defined and header == ‘false’
tags: add_domain

- name: copy nginx lib
copy: src=lib_dir/nginx_71.lib.tar.gz dest=/usr/local/lib
tags: add_lib

- name: unarchive nginx_71.lib.tar.gz
unarchive: src=/usr/local/lib/nginx_71.lib.tar.gz dest=/usr/local/lib/ copy=no mode=0755
tags: add_lib

- name: add lddlib
lineinfile: dest=/etc/ld.so.conf line="/usr/local/lib" state=present
tags: add_lib

- name: lddlib
shell: ldconfig
tags: add_lib

- name: nginx status
shell: ps -ef | grep nginx | grep -v grep | grep master | wc -l
register: nginx_status
tags: add_domain

- name: nginx status
debug: msg=nginx_status
tags: add_domain

- name: start–nginx
raw: /export/servers/nginx/sbin/nginx -c /export/servers/nginx/conf/nginx.conf
when: nginx_status.stdout == “0”
tags: add_domain

- name: reload–nginx
raw: /export/servers/nginx/sbin/nginx -c /export/servers/nginx/conf/nginx.conf -s reload
when: nginx_status.stdout == “1”
tags: add_domain

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 env=${ENV} >>${DIR}/${HOST}

echo idc=${IDC} >>${DIR}/${HOST}

echo DN_Prefix=${DN_PREFIX} >>${DIR}/${HOST}

echo DN_Suffix=${DN_SUFFIX} >>${DIR}/${HOST}

echo Availability_Zone=${AVAILABILITY_ZONE} >>${DIR}/${HOST}

if [[ ${GENERIC} == 'bucket' ]];then echo Generic=${GENERIC} >>${DIR}/${HOST};fi

echo header=${HEADER} >>${DIR}/${HOST}

cd $DIR
ansible-playbook -i ${HOST} initialize.yml --tags=add_domain

jenkins job
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值