淫秽的码头工人用ansible cli编写部署
ansible-compose的Python项目详细描述
部署docker compose.yml
首先,将dsn变量配置为具有用于存储 在中编写文件。如果未设置,则当前工作目录中的本地主机将是 使用:
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
在目标组合上运行命令
提供ssh配置和target dir作为第一个参数,然后 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:herewrong:todrop
首先,将删除所有生成行。你必须 使用env vars指定图像,即:
web_image=abc # sets services[web][image]=abc
如果要删除环境行,请使用drop 前缀:
drop_web_environment= # dels services[web][environment]
您还可以在yaml树的更深处覆盖:
web_environment_SECRET_TOKEN=yoursecret
即使是跌落:
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作文也会把无关的论点转发给 下面是一个可回答的剧本。
自动创建卷目录
它将尝试自动为您创建卷绑定目录。设置 uid和/或guid,在compose.yml中设置为env vars:
environment: uid: 1001 gid: 100
或者使用env变量:
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_unsecure=true,今天不检查任何主机密钥!
Gitlab CI作业示例
deploy:stage:deployimage:yourlabs/ansible-composevariables:-dsn=deploy@example.com/home/stagingscript:-ansible-compose apply -f ./docker-compose.yml