Ansible Ubuntu 安装 - 将 wordpress tar.gz 扩展到 /var/www 的根目录
Ansible Ubuntu installation - expand wordpress tar.gz to root of /var/www
第一次使用 Ansible。我有一本在 Ubuntu Trusty 和 Nginx / MySQL.
上设置 wordpress 的剧本
我正在尝试提取 wordpress.latest.tar.gz 作为根 www 文件夹的一部分。所以我想要的是:
/var/www
- wp-admin
- wp-content
- wp-includes
当我将提取命令指向 /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"
我误会了什么?谢谢!
在我回答之前有一些注意事项:
- 我没有使用过你提到的工具
- 下面的可选解决方案应该被视为一种变通方法,它显然不能直接解决您的问题
- 它们取决于您对命令行的信心以及您可以访问它的事实(因为它是 ubuntu 安装,我猜这是您自己的盒子)。
实验
但首先,让我们尝试一下其他事情。此选项不使用任何终端,仅适用于您拥有的工具,但我会在另一个目录中执行此操作以确保您不会搞砸。
我想如果您删除 creates=/var/www
它可能对您有用。它可能失败的原因是目录已经存在,所以它试图保护您的安全。既然你已经指定了目标目录,那就去吧。
要对其进行测试,您可以先在 /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
"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"
如果按预期运行,请继续并删除 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}
下定义一个不同的目录名
在终端和临时目录中:
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 提供的自动化程度,如果这样做对你的事业没有帮助,我会道歉
祝你好运。
这可能对你有帮助:
- 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,谢谢
第一次使用 Ansible。我有一本在 Ubuntu Trusty 和 Nginx / MySQL.
上设置 wordpress 的剧本我正在尝试提取 wordpress.latest.tar.gz 作为根 www 文件夹的一部分。所以我想要的是:
/var/www
- wp-admin
- wp-content
- wp-includes
当我将提取命令指向 /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"
我误会了什么?谢谢!
在我回答之前有一些注意事项:
- 我没有使用过你提到的工具
- 下面的可选解决方案应该被视为一种变通方法,它显然不能直接解决您的问题
- 它们取决于您对命令行的信心以及您可以访问它的事实(因为它是 ubuntu 安装,我猜这是您自己的盒子)。
实验
但首先,让我们尝试一下其他事情。此选项不使用任何终端,仅适用于您拥有的工具,但我会在另一个目录中执行此操作以确保您不会搞砸。
我想如果您删除 creates=/var/www
它可能对您有用。它可能失败的原因是目录已经存在,所以它试图保护您的安全。既然你已经指定了目标目录,那就去吧。
要对其进行测试,您可以先在 /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
"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"
如果按预期运行,请继续并删除 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} 下定义一个不同的目录名
在终端和临时目录中:
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 提供的自动化程度,如果这样做对你的事业没有帮助,我会道歉
祝你好运。
这可能对你有帮助:
- 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,谢谢