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

Ansible Ubuntu安装-将wordpress tar.gz扩展到/var/www的根目录,wordpress,ubuntu,ansible,extraction,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":

第一次与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"

我误解了什么?谢谢

在我回答之前,有一些警告:

  • 我没有使用你提到的工具的经验
  • 下面的可选解决方案应该被视为一种变通方法,它显然不是您问题的直接解决方案
  • 它们取决于你对命令行的信心,以及你可以访问它的事实(因为它是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"
如果你犯了同样的错误,我们就走上正轨了

现在,在不使用
创建
“play”(双关语)的情况下重新创建剧本,使其看起来像这样:

- name: "Extract archive"
  sudo: yes   
  unarchive: "src=/srv/wordpress.latest.tar.gz 
              dest=/var/www/temp123 copy=no 
              owner=www-data 
              group=www-data"
---
 website_name: test.com
 wordpress_dir: /var/www
 wordpress_url: http://wordpress.org/latest.tar.gz
如果按预期工作,请继续,现在删除
dest:temp
play选项

你的最终剧本应该是这样的:

- 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,自己安装WordPress并不是一项困难的任务。虽然我不知道Ansible提供的自动化程度,但如果这样做无助于你的事业,我会道歉


祝你好运

这可能会对您有所帮助:

- 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文件如下所示:

- name: "Extract archive"
  sudo: yes   
  unarchive: "src=/srv/wordpress.latest.tar.gz 
              dest=/var/www/temp123 copy=no 
              owner=www-data 
              group=www-data"
---
 website_name: test.com
 wordpress_dir: /var/www
 wordpress_url: http://wordpress.org/latest.tar.gz
如需完整参考,请检查以下内容,谢谢