ansible+jenkins发布优化

金鞍玉勒寻芳客,未信我庐别有春。这篇文章主要讲述ansible+jenkins发布优化相关的知识,希望能为你提供帮助。
通过ansible的一个脚本,实现所以自动化发布。好处就是不要为每个项目编写一个yaml脚本。
配置一、都是写成变量的形式传入

cat playbook-standard.yaml --- - hosts: \'{{host}}\' tasks: - name: \'{{command_1}}\' shell: \'{{command_1}}\' - name: \'{{command_2}}\' shell: \'{{command_2}}\' - name: scp files copy: src: /home/jenkins/workspace/{{job_name}}/target/{{tar_name}} dest: \'{{target_name}}\' - name: \'{{command_3}}\' shell: \'{{command_3}}\' - name: \'{{command_4}}\' shell: \'{{command_4}}\' - name: \'{{command_5}}\' shell: \'{{command_5}}\'

【ansible+jenkins发布优化】配置二,这边是配置在jenkins上的Execute shell中来调取 playbook-standard.yaml脚本
target2=`echo "$target"|sed \'s/\\"//g\'` #日期 bak_time=`date +%Y%m%d-%H%M`#发布的压缩包 tar_name="-assembly.tar.gz"#目标目录 file_name="aaa-op-all"#启动命令 file_name2="aaa-op-all-1.0.1"#部署的目标路径 target_name="/data/java/deploy"#执行的命令1、2是传包前执行的命令3、4、5传包后执行的命令command_1="cd $target_name/ & & tar -zcvf bak/$file_name-$bak_time.tar.gz $file_name" command_2="cd $target_name/ & & rm -rf $tar_name"command_3="cd $target_name & & rm -rf $file_name & & tar -xzvf $tar_name & & sleep 5 & & mv $file_name2 $file_name" command_4="source /etc/profile & & nohup sh $target_name/$file_name/bin/restart.sh > > /dev/null 2> & 1 & " #检测脚本 command_5="/aaa/op-all-log.sh"#ansible执行程序for target in $(echo $target2 | sed "s/,/ /g") docd /home/jenkins/workspace/ansible & & ansible-playbook playbook-standard.yaml --extra-vars "{\'host\':\'$target\', \'job_name\':\'$JOB_NAME\', \'tar_name\':\'$tar_name\', \'target_name\':\'$target_name\', \'command_1\':\'$command_1\', \'command_2\':\'$command_2\', \'command_3\':\'$command_3\', \'command_4\':\'$command_4\', \'command_5\':\'$command_5\'}"done


    推荐阅读