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


热门话题
java操作数组上的字符串   java JAXB内容未实例化   图形在Java中如何绘制垂直居中的字符串?   java Apache Ant:使用Junit时出现NoClassDefFoundError   java无法从服务器上运行perl脚本   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   java如何创建。p12文件?   java线程访问无效   java只匹配命名空间中的XML节点,而不知道NS前缀   从java获取2d arraylist元素   数组Java动态集合对象   java Xpath通过通配符或布尔运算查找以相同名称开头的节点?   java注释元素类型   java在中看不到Super()。反编译后的类文件