Latest

如何在容器中对镜像进行操作

如何在容器中对镜像进行操作

Docker VS Podman 由于只需要对镜像进行 pull、tag、push 操作,因此不需要全套的 Docker 服务,这里选择了 Podman。Podman 有一个子命令就是 buildah,它主要负责镜像相关的操作,这样会更加精简。 问题描述 在镜像中添加完 buildah 的依赖后,在容器中运行 buildah 时,报如下错误: 解决方案 此问题的其中一个解决方案为:在宿主机中,修改 /proc/sys/user/max_user_namespaces 文件里面的值。但若采取此种方案,会导致线上环境 K8S 所在的宿主机,可能也要修改,这样的操作是不太可行的。 同事的踩坑经验:可以在 k8s 的 yaml 配置中,为

Ansible playbook 执行流程

Ansible playbook 执行流程

背景 超时主要分两个场景,一个是建立 SSH 连接时,另外一个为通过 SSH 执行命令时的超时。前者主要依靠 SSH 命令的自带参数 ConnectTimeout,后者则有一套 Ansible 自己的实现。 建立连接超时 ansible 2 -u root -m ping -T 30。底层实现使用 ssh -o ConnectTimeout=30。 执行命令超时(playbook) 在 playbook 的 task 中加入 async 和 poll 属性。 * async 表示这个step的最长等待时长,  如果设置为0, 表示一直等待下去直到动作完成; * poll 表示检查step操作结果的间隔时长,poll 设置为0, 表示不用等待执行结果, 该step执行成功。

Ansible ad-hoc 执行流程

Ansible ad-hoc 执行流程

背景 Ansible 封装了很多脚本,以 Module、Play 的形式呈现,这里以一条简单的 shell 命令作为切入点。 在开始前,将目标机的信息,先写入 cat /etc/ansible/hosts 中。 9.134.124.159:36000 所用到的命令如下: ansible all -vvv -a "ls /root" -u root 通过打开一些 debug 日志,可以确定执行连接操作时,一定会执行 ansible/lib/ansible/plugins/connection/ssh.py 中的代码。 执行步骤 完整的日志 META: