淫秽的码头工人用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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
DIIOP_IOR中的java端口0。TXT,我如何更改它?   hadoop面临的问题:java。lang.NoClassDefFoundError:org/bouncycastle/jcajce/JcaJceHelper在使用更新的BC jar时   java将大科学数转换为长科学数   Java8文件流,如何控制文件的关闭?   是否有类似于dotnetshoutout的资源。com&dotnetkicks。Java世界中的com?   java返回类型void/方法替代方案?   如何使用java。lang.NullPointerException:void 安卓。支持v7。应用程序。ActionBar。setElevation(float)“”在空对象引用上'   java使用kafka流获取时间窗口中给定密钥的最后一个事件   java多边形旋转不正确   java我们应该在params中编写什么。jpbc的属性文件   java如何计算线程数?   使用jar时发生java错误,但不在库本身中   java优先级列表排队方法错误   java和org之间的区别。莫基托。莫基托。任何和组织。莫基托。媒人。任何