Tag: ansible

我如何强制使用Ansible的“docker_container”模块删除docker集装箱?

引入pipe理员后,我在从docker主机中移除容器时遇到问题 – https://github.com/google/cadvisor/issues/771 我有大量的Ansible(2.2.1.0)脚本,我用这些docker_container模块来安装服务容器。 很多时候这些脚本都想删除一个容器,但是由于上面提到的问题,它们都失败了。 我可以很轻易地在这些docker主机上强制执行docker container: docker rm container_name -fv 所以我期望在docker_container模块( docker_container模块文档 )中提供的force_kill选项应该能够执行相同的操作: – name: Delete docker containers docker_container: name: "container_name" force_kill: true keep_volumes: false state: absent 但脚本总是失败。 我不知道这个选项的目的是什么,如果它不能强行杀死它的话。 所有我的脚本甚至在启用force_kill后都失败了,我需要知道如何确保这个选项按预期工作。 更新:我现在明白了force_kill选项正在发送docker kill信号。 我已经更新了这个问题,以更好地反映我真正想要达到的目标。

如何将string拆分为数组和循环呢?

我有一个像这样的stringvariablesRCD_APIS=backend,api-alerting,api-tracking,api-versioning ,其中包含我的泊坞窗图像的名称。 我需要将其分成一个数组,并循环它,所以我可以拉每个泊坞窗图像 我已经尝试了with_sequence循环,但我只得到索引(1,2,3,..) – name: pull images from registry docker_image: name: "hostname:5000/{{ RCD_APIS.split(',') }}" pull: true state: present tag: "{{RCD_VERSION_CURRENT}}" with_sequence: count={{ RCD_APIS|count }} 我也尝试with_item循环,但它不工作,所以我试图debugging: vars: – container: "{{ RCD_APIS }}" tasks: – name: pull images from registry debug debug: var={{item|basename}} with_items: container.split(',') 我得到像这样的东西: (item=container.split(',')) => { "container.split(',')": [ "backend", "api-alerting", "api-tracking", "api-versioning", "connecteur-gdfa", […]

使用ansible创builddocker swarm

我使用github中的以下内容来了解​​docker swarm是如何通过https://github.com/patocox/ansible-swarm-do 我不确定我是否可以提出这个疑问,而不会在github上提出问题,所以我在这里。 我按照README.md中的步骤,在github上find几个可能的解决scheme之后,我还更改了我的hosts文件: [admin] IP_ADDRESS ansible_ssh_pass=vagrant ansible_ssh_user=vagrant [admin:vars] ansible_password=vagrant IP_ADDRESS是我在digitalocean上创build的液滴。 我继续得到这个错误: UNREACHABLE! => {"changed": false, "msg": "Authentication failed.", "unreachable": true} 我正在使用适当的API访问令牌执行README.md中给出的命令。 有人可以帮忙吗? 提前致谢。

使用Ansible迭代从Docker API返回的json

您好我有一个像下面的剧本,我想parsing从dockerAPI的JSON输出,并没有运气呢。 Id喜欢parsingId字段,并将其用作docker exec的input。 我的最终结果是获取所有运行的容器的报告以及它们的环境variables。 – hosts: devtest.log.economicalinsurance.com tasks: – name: Get containers command: curl –insecure –cert-type PEM –cert /etc/docker/server-cert.pem –key /etc/docker/server-key.pem "https://127.0.0.1:2376/v1.22/containers/json?all=1" register: containers – debug: msg="{{ containers.stdout }}" – name: Get ENV Vars command: docker exec -t {{ item }} printenv with_items: "{{ containers.stdout|json_query|('Id[*]'') }}"

Docker连接phpmyadmin到我的MySQL服务器

你好我试图连接MySQL到我的phpmyadmin容器如何绑定到这个MySQL。 也有可能改变端口8080到/ phpmyadmin即时通讯访问http://192.168.99.100:8080所以我得到http://192.168.99.100/phpmyadmin而不是容器ID version: '2' services: ####################################### # PHP application Docker container ####################################### app: build: context: . dockerfile: Dockerfile links: – mysql ports: – "8000:80" volumes: – ./app/:/app/ – ./:/docker/ volumes_from: – storage networks: – php-network ####################################### # MySQL server ####################################### mysql: build: context: docker/mysql/ dockerfile: MySQL-5.7.Dockerfile restart: always volumes_from: – storage env_file: – etc/environment.yml […]

Ansible Container无法加载libsudo_util.so.0以执行特权模块

我正在试图使用Ansible容器为应该在图像中安装节点的基本示例。 当我使用ansible-container build命令时,在成功build立导体图像之后,第一个任务失败,导致与sudo相关的错误。 有问题的任务需要执行root权限。 我正在运行Debian GNU / Linux 9.2(扩展版),通过Docker APT存储库安装Docker 17.09.0-ce。 我试用了Debian Stretch(2.2.1.0-2)和Pypi(2.4.1.0)中的Ansible。 我从Pypi(0.9.3rc0)和最新的Git源码尝试了Ansible Container。 我总是得到完全相同的错误输出。 Ansible模块抱怨如下: sudo: error while loading shared libraries: libsudo_util.so.0: cannot open shared object file: No such file or directory 正在运行的任务如下所示: – name: Add the Node Source repository signing certificate to APT apt_key: id: 9FD3B784BC1C6FC31A8A0A1C1655A0AB68576280 keyserver: hkps://hkps.pool.sks-keyservers.net become: yes 导体以及我尝试创build的服务都使用debian:stretch基础图像。 我正在运行带有sudo的ansible-container […]

docker运行的完全等效“-c”

使用自定义configuration运行docker postgres容器,您可以使用如下命令: “docker container run -d postgres -c max_connections = 6 -c log_lock_waits = on” 我的任务是: name: Start postgis become: true docker_container: name: postgis image: "{{ ecr_url }}" network_mode: bridge exposed_ports: 5432 published_ports: 5432:5432 state: started volumes: – /mnt/datadir/pgdata:/var/lib/postgresql/data 这将确实运行的容器,但那么我的问题是: Docker运行命令中“-c”标志的等价物是什么? 感谢larsks的答案,你可以发送多个命令一个在另一个之下 published_ports: 5432:5432 state: started command: -c shared_buffers = 24000MB -c work_mem=16MB -c maintenance_work_mem […]

由于CentOS6上的GMP包版本,Ansible错误

我有一个Dockerfilebuild立一个基于CentOS的图像(标签: centos6 ): FROM centos RUN rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm RUN yum update -y RUN yum install ansible -y ADD ./ansible /home/root/ansible RUN cd /home/root/ansible;ansible-playbook -v -i hosts site.yml 一切工作正常,直到Docker击中最后一行,然后我得到以下错误: [WARNING]: The version of gmp you have installed has a known issue regarding timing vulnerabilities when used with pycrypto. If possible, you should update it (ie. […]

ansible docker env var在容器中不可用

所以我开始像这样的一个docker集装箱 name: start the new shiny container docker: name: web image: pneuma/web state: started detach: True ports: – "80:80" volumes: – /data/db:/var/lib/postgresql – /data/log:/var/log/postgresql env: DEPLOYMENT_ENVIRONMENT: "{{ deployment_env }}" 但var DEPLOYMENT_ENVIRONMENT在容器内不可用,当我尝试echo $DEPLOYMENT_ENVIRONMENT或使用其他地方。 有什么遗漏?

如何使用ansible修改tomcat docker容器的configuration文件?

我正在尝试使用Ansible playbook更改正在运行的tomcat docker容器的configuration文件或自述文件。 我去了docker模块,你可以build立和运行你的docker图像。 但是我想使用Ansible在运行时更改或replace容器的configuration文件中的任何行的任务自动执行。 我没有看到任何这样的模块来做到这一点。 任何帮助表示赞赏。 PS:我已经知道用于修改行的lineinfile模块。 我的问题是如何使用ansible进入正在运行的容器。