使用Ansible CLI的淫秽docker-compose部署
项目描述
部署docker-compose.yml
首先,配置dsn变量以包含用户/主机和存储compose文件的路径。如果没有设置,则使用当前工作目录中的localhost
export dsn=user@host:22/absolute/target/path
然后,运行ansible-compose apply -f,就像使用k8s一样
ansible-compose apply -f ./docker-compose-example.yml -f ./examples/nginx.yml
或者,从URL部署,就像kubectl apply一样让您做
ansible-compose apply -f https://raw.git.../docker-compose.yml
在目标compose上运行命令
提供ssh配置和目标目录作为第一个参数,然后是docker-compose命令
export dsn=user@host:22/absolute/target/path ansible-compose stop ansible-compose start ansible-compose logs ansible-compose help
CLI上docker-compose.yml的转换
转换应用于docker-compose.yml,就像我们正在使用环境变量渲染模板一样。
假设你从一个这样的docker-compose.yml开始
version: '3.4'
services:
web:
build: .
environment:
base: here
wrong: todrop
首先,所有构建行将被删除。您必须使用环境变量指定镜像,例如。
web_image=abc # sets services[web][image]=abc
如果您想删除环境行,请使用drop前缀
drop_web_environment= # dels services[web][environment]
您也可以在YAML树中更深层地覆盖
web_environment_SECRET_TOKEN=yoursecret
甚至对于drop
drop_web_environment_VERSION=
甚至删除整个服务
drop_web=
但是,您可以为所有变量要求特定的前缀,例如
dev_drop_mail= # to prevent the mail service on dev branches ansible_compose_prefix=dev # to enable only variables starting with dev_
不要忘记,ansible-compose还会将多余的参数传递给下方的ansible-playbook调用。
自动创建卷目录
它将尝试自动为您创建卷绑定目录。要设置uid和/或guid,请将它们作为环境变量设置,无论是 compose.yml
environment: uid: 1001 gid: 100
或使用环境变量
web_environment_uid=1001
安装
本地
pip install --user ansible-compose export PATH="$HOME/.local/bin:$PATH" echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
CI中当前image yourlabs/ansible-compose的配置为
ANSIBLE_HOST_KEY_CHECKING=false
SSH_PRIVATE_KEY=使用ssh-keygen -t ed25519和默认选项生成的无密码私钥
SSH_INSECURE=true 今日不检查任何主机密钥!
示例gitlab ci作业
deploy:
stage: deploy
image: yourlabs/ansible-compose
variables:
- dsn=deploy@example.com/home/staging
script:
- ansible-compose apply -f ./docker-compose.yml
项目详情
关闭
ansible-compose-1.0.8.post5.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 9ed91770e5fb1086dd4f46a75973a30cd606ac282f951c3fda781d3b97cfc14d |
|
MD5 | ee1a3042e8ba0420a0e6246b46ad080b |
|
BLAKE2b-256 | cd4624cf26b5d24f7a3ad83d8048bfd43df2059dc8bb50aa12afc89f16e3e45b |