Dockerfile整合ansible实现容器自动拉取代码并执行

Dockerfile整合ansible实现容器自动拉取代码并执行

dockerfile:
	FROM baseimages
	MAINTAINER zuoxi
	WORKDIR /opt/ansible/files
	ADD ansible.sh /opt/ansible/files
	ADD main.yml /opt/ansible/files
	ENTRYPOINT sh ansible.sh

编写shell脚本
ansible.sh
#!/bin/bash
cd /opt/ansible/files
if [ " D Y N A M I C A S S E M B L Y " x ! = " f a l s e " x ] ; t h e n a n s i b l e − p l a y b o o k m a i n . y m l f i i f [ " DYNAMIC_ASSEMBLY"x != "false"x ];then ansible-playbook main.yml fi if [ " DYNAMICASSEMBLY"x!="false"x];thenansibleplaybookmain.ymlfiif["ANSIBLE_KEEPRUN"x = "true"x ];then
tail -f /dev/null
fi

##“DYNAMIC_ASSEMBLY”:判断此环境变量的值,若为flase,则取消自动执行ansible脚本
##“ANSIBLE_KEEPRUN”:判断此环境变量的值,若只true,则让docker执行完代码后持续开启

编写ansible脚本
main.yml
- name: an example playbook
hosts: 127.0.0.1
connection: local
tasks:
- name: clone code
local_action: git repo=http:// u s e r n a m e : {username}: username:{password}@ a d d r e s s d e s t = / o p t / a n s i b l e 3 / f i l e s − n a m e : r u n c o d e c o m m a n d : " p y t h o n 3 / o p t / a n s i b l e 3 / f i l e s / {address} dest=/opt/ansible3/files - name: run code command: "python3 /opt/ansible3/files/ addressdest=/opt/ansible3/filesname:runcodecommand:"python3/opt/ansible3/files/{filename}"
建立两个任务,一个为从git上拉取代码,一个为执行拉取后的代码,
##username:获取此环境变量,变量值应为git账号
##password:获取此环境变量,变量值应为git密码
##address:获取此环境变量,变量值为git地址,(需去除http://,保留后面的内容)
##filename:获取此环境变量,变量值为git上需要执行代码的绝对路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值