使用 Ansible 解压缩下载的 tarball

jea*_*_re 5 ubuntu tar ansible

我正在尝试通过 Ansible 下载和安装 WordPress,但我似乎无法弄清楚我在这里做错了什么。首先我通过get_url模块下载然后我尝试使用unarchive模块将源移动到我的同步文件夹。

角色/wordpress/默认

wp_debug: true
wp_version: 4.2.1
auto_up_disable: false
core_update_level: false
Run Code Online (Sandbox Code Playgroud)

角色/wordpress/任务/main.yml

- name: Download WordPress
  get_url: url=http://wordpress.org/wordpress-{{ wp_version }}.tar.gz dest=/var/www/wordpress-{{ wp_version }}.tar.gz

- name: Extract archive
  unarchive: src=/var/www/wordpress-{{wp_version}}.tar.gz dest={{site.www_root}}
Run Code Online (Sandbox Code Playgroud)

错误信息 在此处输入图片说明

然后当我 ssh 进入流浪盒子时...... 在此处输入图片说明

规格: Ubuntu 14.04、Ansible 1.9.1、Vagrant 1.7.2、OSX Yosemite

备注: site.www_root设置为/var/www/wordpress

小智 12

似乎模块的copy参数让unarchive你绊倒了。http://docs.ansible.com/unarchive_module.html指出:

  • -If copy=yes(默认),要复制到目标服务器的存档文件的本地路径;可以是绝对的,也可以是相对的。

  • -If copy=no,目标服务器上要解压缩的现有存档文件的路径。

从本质上讲,get_url您的文件已下载到远程服务器,但unarchive尝试从本地计算机中提取它。

您的第二个任务应该更新为:

- name: Extract archive
  unarchive: src=/var/www/wordpress-{{wp_version}}.tar.gz
             dest={{site.www_root}}
             copy=no
Run Code Online (Sandbox Code Playgroud)

  • 此操作的 copy=no 已被弃用,取而代之的是 remote_src=yes (6认同)