有了解 ansible-playbook 的么

2014-07-26 18:26:55 +08:00
 tin
在网上找了很久,没有中文教程。请问这个有中文教程不?英文看着太费劲了。。。谢谢
6520 次点击
所在节点    Ansible
15 条回复
snachx
2014-07-26 23:45:32 +08:00
貌似木有中文,不过那点英文也很简单啊,实在看不下去就看实际例子好了,比如
https://github.com/edx/configuration
tin
2014-07-28 11:59:58 +08:00
@snachx 谢谢,我也是在看 edx 才知道 ansible 的。学这个有啥好的建议么?我看 edx 的代码都不知道各文件夹是干什么的,有什么联系。您有好的建议么?谢谢
tin
2014-07-28 12:00:49 +08:00
我看 ansible 也是为了弄明白 edx 安装时的原理,但不知从那开始。。。。
snachx
2014-07-28 14:20:41 +08:00
@tin edx configuration的代码比较丰富了,看这个就行

如果你是为了知道安装时的原理的话,从https://github.com/edx/configuration/blob/master/playbooks/edx_sandbox.yml 开始吧

执行的步骤就是roles下面的列出来的各个role的内容,具体的某个role放在playbooks/roles下面,比如nginx,具体某个role的文件夹下,defaults是各种参数配置,handlers是task中用到的handlers定义,meta是依赖的其他role之类的信息,tasks是具体执行的内容,templates是tasks中用到的文件模板。

以此类推,推荐的方法是,参照 https://github.com/edx/configuration/wiki/edX-Ubuntu-12.04-64-bit-Installation 的One step installation,看他输出提示,然后用输出提示的名字去代码里面搜索,就会发现是那一步,放在什么地方,然后多看几个就知道怎么组织的了。
tin
2014-07-28 15:16:37 +08:00
@snachx 非常感谢。我去研究研究。有不明白再请教。谢谢
tin
2014-07-28 23:20:23 +08:00
@snachx 再请教一个问题: https://github.com/edx/configuration/wiki/edX-Ubuntu-12.04-64-bit-Installation这个教程中,最后一个命令是:
sudo ansible-playbook -c local --limit "localhost:127.0.0.1" ../edx_sandbox.yml \
-i "localhost," -e 'EDXAPP_PREVIEW_LMS_BASE=preview.example.com EDXAPP_LMS_BASE=example.com EDXAPP_LMS_PREVIEW_NGINX_PORT=80 EDXAPP_CMS_NGINX_PORT=80 EDXAPP_LMS_NGINX_PORT=80 edx_platform_version=master '
这个命令分两部分:
-e 之后的命令我看明白了:是设置对应的 /var/tmp/configuration/playbooks/edx_sandbox.yml 文件中的变量。如果再安装中是用自己的域名,edx_sandbox.yml 里设置,还是在上边的命令行中设置,还是两个都要设置?

但-e 之前的没有明白-i "localhost" 是指向到本地主机么?谢谢
snachx
2014-07-29 07:50:38 +08:00
ansible-playbook --help
tin
2014-07-29 13:58:46 +08:00
@snachx 谢谢,原来是两个"-"
tin
2014-08-07 13:59:00 +08:00
@snachx 再请教一个问题 (暂定域名是 abc.com)
sudo ansible-playbook -c local --limit "localhost:127.0.0.1" ../edx_sandbox.yml \
-i "localhost," -e 'EDXAPP_PREVIEW_LMS_BASE=preview.abc.com EDXAPP_LMS_BASE=abc.com EDXAPP_LMS_PREVIEW_NGINX_PORT=80 EDXAPP_CMS_NGINX_PORT=80 EDXAPP_LMS_NGINX_PORT=80 edx_platform_version=master '

sudo ansible-playbook -c local --limit "localhost:127.0.0.1" ../edx_sandbox.yml \
-i "localhost, **abc.com**," -e 'EDXAPP_PREVIEW_LMS_BASE=preview.abc.com EDXAPP_LMS_BASE=abc.com EDXAPP_LMS_PREVIEW_NGINX_PORT=80 EDXAPP_CMS_NGINX_PORT=80 EDXAPP_LMS_NGINX_PORT=80 edx_platform_version=master '
有什么区别?
tin
2014-08-07 14:01:01 +08:00
抱歉打错了。重新问,下边两个其它都一样。就是在-i “localhost”,后面一个没加域名,一个加了域名。请问加与不加,有什么区别?谢谢
sudo ansible-playbook -c local --limit "localhost:127.0.0.1" ../edx_sandbox.yml \
-i "localhost," -e 'EDXAPP_PREVIEW_LMS_BASE=preview.abc.com EDXAPP_LMS_BASE=abc.com EDXAPP_LMS_PREVIEW_NGINX_PORT=80 EDXAPP_CMS_NGINX_PORT=80 EDXAPP_LMS_NGINX_PORT=80 edx_platform_version=master '

sudo ansible-playbook -c local --limit "localhost:127.0.0.1" ../edx_sandbox.yml \
-i "localhost, abc.com," -e 'EDXAPP_PREVIEW_LMS_BASE=preview.abc.com EDXAPP_LMS_BASE=abc.com EDXAPP_LMS_PREVIEW_NGINX_PORT=80 EDXAPP_CMS_NGINX_PORT=80 EDXAPP_LMS_NGINX_PORT=80 edx_platform_version=master '
snachx
2014-08-07 14:24:06 +08:00
@tin 建议再去看一下 -i 参数的含义和INVENTORY的含义,-i 指定的内容是指在哪些机器上跑脚本,可以是本地的也可以是远程的等等

而看你的意思应该说是你的edx平台搭起来之后要用abc.com来访问,-i 参数不会对这个目的有什么作用。只有你后面写的 -e 中的内容才会影响edx的设置
tin
2014-08-07 15:44:48 +08:00
@snachx 谢谢。ansible 全英文看的比较慢。在用 EDX 试的时候很多参数不知道从何着手。我再研究研究。谢谢
tin
2014-08-07 15:48:16 +08:00
我看了-i 的参数介绍(通过--help)是:
-i INVENTORY, --inventory-file=INVENTORY
specify inventory host file

哪里能找到更详细的说明?ansible 的官方文档 么?
snachx
2014-08-07 19:29:29 +08:00
@tin 帮助不懂的就去官方文档搜索,肯定会有啦~
hzwlf2002
2016-05-18 17:32:39 +08:00
推荐一本书: Ansible: UP and Running

我的 github 上也给了一些安装配置常用服务的示例,欢迎围观与给星。

https://github.com/wanglf/ansible-playbook

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124628

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX