gpt4 book ai didi

nginx - 在docker中使用Systemd服务测试Ansible Playbook

转载 作者:行者123 更新时间:2023-12-02 18:55:47 25 4
gpt4 key购买 nike

我猜想在docker实例中进行ansible-playbook测试是不可能的,因为它们结合了“服务启用”测试,而这些测试又依赖于正在运行的init系统,在centos 7的情况下,这将是系统化的。

明确地说:测试旨在表明ansible剧本可以在一组给定的OS实例上正常工作,并且必须支持,并且ansible脚本将部署在裸机/虚拟机上。

因此,例如,测试此简单的nginx yaml代码片段包含service: state: started声明。

# ./ansible-nginx/tasks/install_nginx.yml

- name: NGINX | Installing NGINX repo rpm
yum:
name: http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

- name: NGINX | Installing NGINX
yum:
name: nginx
state: latest

- name: NGINX | Starting NGINX
service:
name: nginx
state: started

使用给定的Dockerfile:
$ cat Dockerfile
FROM ansible/centos7-ansible:stable

WORKDIR /provision

COPY hosts /etc/ansible/
COPY ansible-nginx /provision

CMD ["ansible-playbook", "deploy.yml"]

失败并出现以下错误:
$ docker run -it foo

PLAY [localhost] ***************************************************************

TASK [setup] *******************************************************************
ok: [localhost]

TASK [NGINX | Installing NGINX repo rpm] ***************************************
changed: [localhost]

TASK [NGINX | Installing NGINX] ************************************************
changed: [localhost]

TASK [NGINX | Starting NGINX] **************************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "no service or tool found for: nginx"}

NO MORE HOSTS LEFT *************************************************************
[WARNING]: Could not create retry file 'deploy.retry'. [Errno 2] No such file or directory: ''


PLAY RECAP *********************************************************************
localhost : ok=3 changed=2 unreachable=0 failed=1

在不同的OS版本上使用docker测试使用systemd的ansible脚本的方法是什么(因为它们将在裸机/ vm上执行)?

最佳答案

实际上,我在测试大量Ansible剧本时都以Docker容器作为目标主机-诀窍是将对SystemD的“systemctl”的调用转移到另一个仅完成启动/停止服务工作的脚本。我的docker-systemctl-replacement将检查周围的* .service文件...如果您愿意,它也可以用作CMD初始化过程。

关于nginx - 在docker中使用Systemd服务测试Ansible Playbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39350104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com