Ansible Ubuntu安装 - 将wordpress tar.gz扩展到/ var / www的根目录

时间:2015-11-15 05:11:47

标签: wordpress ubuntu ansible extraction

第一次使用Ansible。我有一个在Ubuntu Trusty和Nginx / MySQL上设置wordpress的剧本。

我正在尝试将wordpress.latest.tar.gz提取为根www文件夹的一部分。所以我想要的是:

/var/www
   - wp-admin
   - wp-content
   - wp-includes

当我将extract命令指向/var/www时,我得到:

ok: [XXX.XX.XX.XXX] => {"changed": false, "msg": "skipped, since /var/www exists"}

当我将其指向var/www/wordpress(不存在)时,它会工作并创建文件夹。

我的任务语法(有效但将wordpress放在自己的文件夹中)是:

- name: "Extract archive"
  sudo: yes   
  unarchive: "src=/srv/wordpress.latest.tar.gz 
              dest=/var/www copy=no 
              owner=www-data 
              group=www-data 
              creates=/var/www/wordpress"

我已经尝试了下面的语法,但它会跳过上面提到的提取。

- name: "Extract archive"
  sudo: yes   
  unarchive: "src=/srv/wordpress.latest.tar.gz 
              dest=/var/www copy=no 
              owner=www-data 
              group=www-data 
              creates=/var/www"

我误解了什么?谢谢!

2 个答案:

答案 0 :(得分:1)

在回答之前有一些警告:

  • 我对您提及的工具没有经验
  • 下面的可选解决方案应该被视为一种解决方法,它显然不是您问题的直接解决方案
  • 他们取决于你对命令行的信心和你可以访问它的事实(因为它是一个ubuntu安装,我猜它是你自己的盒子)。

实验

但首先,让我们给别的东西。此选项不使用任何终端,仅适用于您拥有的工具,但我会在另一个目录中执行此操作,以确保您不会搞砸。

我认为如果您删除creates=/var/www它可能适合您。它可能失败的原因是因为dir已经存在,所以它试图让你安全。既然你已经指定了目标目录,那就去吧。

要测试它,您可以先在/var/www下创建一个临时目录,以便您拥有以下路径:/var/www/temp123

然后使用以下选项创建您的剧本:

- name: "Extract archive"
  sudo: yes   
  unarchive: "src=/srv/wordpress.latest.tar.gz 
              dest=/var/www/temp123 copy=no 
              owner=www-data 
              group=www-data
              creates=/var/www/temp123"

如果你得到同样的错误,我们就会走上正轨。

现在重新创建没有creates“播放”(双关语)的剧本,以便它看起来像这样:

- name: "Extract archive"
  sudo: yes   
  unarchive: "src=/srv/wordpress.latest.tar.gz 
              dest=/var/www/temp123 copy=no 
              owner=www-data 
              group=www-data"

如果按预期方式工作,请继续现在删除dest: temp播放选项。

你的最后一场比赛应该是这样的:

- name: "Extract archive"
  sudo: yes   
  unarchive: "src=/srv/wordpress.latest.tar.gz 
              dest=/var/www copy=no 
              owner=www-data 
              group=www-data"

我希望这会有所帮助

不要忘记删除所有临时工作。

如果这不起作用,您可以随时尝试自己动手:

选项1:在子目录中创建并移动它

  • 像在子目录中一样安装它 - 在/ var / www / {yourTempDirNameWithoutCurlyBraces}下定义一个不同的dirname
  • 在终端和临时目录中:

    mv * ..

  • 然后您可以删除该目录

选项2:从命令行

安装它

如果您已在服务器上安装该文件,请转到/var/www目录并:

tar -xzvpf /srv/wordpress.latest.tar.gz
     x - extract
     z - uncompress
     v - verbose (see the ouput—this flag is optional)
     p - preserve file permissions (see note)
     f - the file we're extracting

 note: I'm not sure what file permissions will be inside the archive
      but I would expect they're set for the webserver already. 
      If they're not, you could always issue:

 chown -R www-data:www-data /var/www/

警告重新整合:D

在这里没有直接答案的情况下,我只是张贴这个来帮你上路。我再次使用Ansible或者熟悉它。但是,如果你想分手并试一试,自己安装WordPress并不是一项艰巨的任务。虽然我不知道Ansible提供的自动化程度,但如果这样做会道歉并不能帮助您解决问题

祝你好运。

答案 1 :(得分:0)

这可能对您有所帮助:

- name: Download the latest wordpress
   get_url: url={{ wordpress_url }} dest={{ wordpress_dir }}/latest.tar.gz

 - name: Unzip the downloaded wordpress zipped file
   unarchive: src={{ wordpress_dir }}/latest.tar.gz dest={{ wordpress_dir }} copy=no

 - name: Rename the extracted wordpress directory as Website name
   command: mv {{ wordpress_dir }}/wordpress {{ wordpress_dir }}/{{ website_name }}

var文件是这样的:

---
 website_name: test.com
 wordpress_dir: /var/www
 wordpress_url: http://wordpress.org/latest.tar.gz

如需完整参考,请查看以下link,谢谢