【问题标题】:Ansible deploys Docker container to wrong Vagrant VMAnsible 将 Docker 容器部署到错误的 Vagrant VM
【发布时间】:2017-02-02 12:57:57
【问题描述】:

在试用@konstantin-suvorov 解决方案后更新。现在它什么也没做。

我创建了 5 个 Vagrant 虚拟机,全部来自bento/xenial64,然后使用 Ansible 将 docker 部署到所有机器上。

当我尝试使用 Ansible 将容器部署到远程 VM 上时,它说它已经完成了,但容器正在本地计算机上运行。

我的 4 台机器是: 控制 集群01 集群02 集群03 集群04

Docker 已启动并在所有 5 上运行

从虚拟机控制,我运行

ansible-playbook -i hosts/local jenkins.yml

我的库存文件是

[control]
10.100.100.100

[cluster]
10.100.100.101
10.100.100.102
10.100.100.103
10.100.100.104

[master]
10.100.100.101

这是我的 Jenkins 剧本

---
- hosts: master
  remote_user: ubuntu
  serial: 1
  roles:
    - jenkins

这是我的詹金斯角色

---
- name: Container is running
  docker_container:
    name: jenkins
    image: "jenkins:{{ jenkins_version }}"
    ports: 8080:8080
    volumes:
      - "{{ jenkins_home_dir }}:/var/jenkins_home"

在运行 ansible-playbook 后,使用非常非常详细的选项,并为 vagrant 机器添加库存,

vagrant@control:/vagrant$ ansible-playbook -i hosts/local jenkins.yml -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory -vvvv
Using /vagrant/ansible.cfg as config file
Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7/dist-packages/ansible/plugins/callback/__init__.pyc

PLAYBOOK: jenkins.yml **********************************************************
1 plays in jenkins.yml

PLAY RECAP *********************************************************************

我做错了什么?

【问题讨论】:

    标签: jenkins docker vagrant ansible containers


    【解决方案1】:

    远程节点中删除ansible_connection=local

    如果ansible_connectionlocal,Ansible 会在本地(控制)主机上运行所有任务。

    【讨论】:

    • 我删除了 ansible_connection=local。现在它什么也没做。也没有错误
    • 为什么要-i参数?
    • 一个用于库存中节点的逻辑结构。另一个是 vagrant 使用连接凭据自动生成的
    • 事情不是这样工作的。可能只有一个库存。如果您需要在多个文件之间拆分记录,请使用 directory-inventory。
    • 各种问题。一旦我使用 host_vars 修复了库存并删除了 ansible_connection 设置,一切正常。其他问题不相关。
    猜你喜欢
    • 1970-01-01
    • 2018-02-05
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2015-04-22
    • 2015-06-20
    • 2020-12-04
    相关资源
    最近更新 更多