2017-06-12 6 views
1

Ich habe ein Problem mit dem docker_container Modul für ansible (v2.3). Wenn ich versuche, die env_file-Eigenschaften im Playbook zu übergeben, bekomme ich den Fehler: keine solche Datei oder Verzeichnis.Ansible docker_container Modul env Datei

--- 
- hosts: preprod-api 
    become: yes 
    gather_facts: true 
    tasks: 
    - name: test configuration 
     docker_container: 
     name: "backend" 
     image: "backend" 
     state: started 
     exposed_ports: 
      - 80 
     volumes: 
      - /opt/application/i99/current/logs 
     user: ansible 
     env_file: 
      - "/opt/application/i99/current/backend/backend-PreProd-config.list" 

Ich habe mit einer Datei versucht, die mit dem gleichen Ergebnis auf dem ansible serveur und einem auf dem Ziel serveur existieren.

hier ist der Fehler:

`fatal: [my_hostname]: FAILED! => {"changed": false, "failed": true, "module_stderr": "Shared connection to my_hostname closed.\r\n", 
"module_stdout": "Traceback (most recent call last): 
    File \"/tmp/ansible_rySqS2/ansible_module_docker_container.py\", 
    line 2036, in <module> main() File \"/tmp/ansible_rySqS2/ansible_module_docker_container.py\", 
    line 2029, in main\r\n cm = ContainerManager(client) File \"/tmp/ansible_rySqS2/ansible_module_docker_container.py\", 
    line 1668, in __init__\r\n self.parameters = TaskParameters(client)\r\n File \"/tmp/ansible_rySqS2/ansible_module_docker_container.py\", 
    line 784, in __init__\r\n self.env = self._get_environment()\r\n File \"/tmp/ansible_rySqS2/ansible_module_docker_container.py\", 
    line 1134, in _get_environment\r\n parsed_env_file = utils.parse_env_file(self.env_file)\r\n File \"/usr/lib/python2.7/site-packages/docker/utils/utils.py\", 
    line 961, in parse_env_file with open(env_file, 'r') as f:\r\nIOError: [Errno 2] No such file or directory: \"['/path/to/my/file/that/exist/backend-PreProd-config.env']\"\r\n", "msg": "MODULE FAILURE", "rc": 0}` 

so meine Frage ist: Wie kann ich die env-Datei übergeben?

Antwort

0

so habe ich das Problem gefunden. zuerst Die Syntax lautet:

env_file: /local/dir/some/file.env 

die Datei auf dem Ziel-Server lokalisiert werden müssen und enthalten keine leere Zeile oder Räume in dem ersten Zeichen.

0

Die env_file muss lokal für Ihren Host sein und keine Datei im Container.

env_file: 
     - "/local/dir/some/file.env" 
+0

danke für die Antwort. Ich habe das ausprobiert, aber ich bekomme einen "keine solche Datei oder Verzeichnis" -Fehler, selbst wenn die Datei existiert –