第一次使用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"
我误解了什么?谢谢!
答案 0 :(得分:1)
在回答之前有一些警告:
但首先,让我们给别的东西。此选项不使用任何终端,仅适用于您拥有的工具,但我会在另一个目录中执行此操作,以确保您不会搞砸。
我认为如果您删除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"
我希望这会有所帮助
不要忘记删除所有临时工作。
如果这不起作用,您可以随时尝试自己动手:
在终端和临时目录中:
mv * ..
然后您可以删除该目录
如果您已在服务器上安装该文件,请转到/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/
在这里没有直接答案的情况下,我只是张贴这个来帮你上路。我再次使用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,谢谢