【问题标题】:How to have Ansible Git install into an existing directory如何将 Ansible Git 安装到现有目录中
【发布时间】:2016-11-14 23:09:31
【问题描述】:

尝试重复 git clone deploy 到一个公共目录,但得到错误“/www'已经存在并且不是一个空目录”。

错误: 致命:[35.162.216.10]:失败! => {“已更改”:false,“cmd”:“/usr/bin/git clone--origin origin https://github.com/installtest/PHP-Algos.git /www”,“失败”:true,“msg”:“致命:目标路径'/www ' 已经存在并且不是空目录。", "rc": 128, "stderr": "fatal: 目标路径 '/www' 已经存在并且不是空目录。\n", "stdout": "" , "stdout_lines": []}

剧本中的部分:

vars: 
    - website_dir: /www    
     - name: Deploy Code From Github
      git: 
        dest={{ website_dir }}/
        repo=https://github.com/installtest/PHP-Algos.git
    update=yes
    force=yes

部署目录的权限。部署当前是 ubuntu。

root@ip-172-30-0-219:~# ls -al /www
total 12
drwxrwxr-x  2 ubuntu www-data 4096 Nov 14 04:43 .
drwxr-xr-x 24 root   root     4096 Nov 14 04:33 ..
-rw-r--r--  1 ubuntu www-data   27 Nov 14 04:43 DATA_VARIABLES

【问题讨论】:

  • 我尝试将格式应用于您的帖子,但您包含的剧本一团糟。请更正。
  • 它告诉你它不是一个空目录。事实上,它不是,因为你有 DATA_VARIABLES 在那里。

标签: git deployment ansible


【解决方案1】:

git moduledest参数是目标目录,不是上一级目录:

应将存储库签出到的绝对路径。

你应该使用:

dest={{ website_dir }}/PHP-Algos

【讨论】:

  • 如果我希望将 repo 中的所有内容都转储到顶级目录中怎么办?
  • 除非它是空的,否则你不能。这就是 git 克隆的工作原理。
猜你喜欢
  • 2017-07-12
  • 2016-05-10
  • 2013-08-25
  • 2014-11-16
  • 2022-09-23
  • 1970-01-01
  • 2016-02-16
  • 2012-06-21
  • 2015-04-02
相关资源
最近更新 更多