V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ansible
Ansible Documentation
tin
V2EX  ›  Ansible

有了解 ansible-playbook 的么

  •  
  •   tin · 2014-07-26 18:26:55 +08:00 · 6735 次点击
    这是一个创建于 3776 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在网上找了很久,没有中文教程。请问这个有中文教程不?英文看着太费劲了。。。谢谢
    15 条回复    2016-05-18 17:32:39 +08:00
    snachx
        1
    snachx  
       2014-07-26 23:45:32 +08:00 via Android
    貌似木有中文,不过那点英文也很简单啊,实在看不下去就看实际例子好了,比如
    https://github.com/edx/configuration
    tin
        2
    tin  
    OP
       2014-07-28 11:59:58 +08:00
    @snachx 谢谢,我也是在看 edx 才知道 ansible 的。学这个有啥好的建议么?我看 edx 的代码都不知道各文件夹是干什么的,有什么联系。您有好的建议么?谢谢
    tin
        3
    tin  
    OP
       2014-07-28 12:00:49 +08:00
    我看 ansible 也是为了弄明白 edx 安装时的原理,但不知从那开始。。。。
    snachx
        4
    snachx  
       2014-07-28 14:20:41 +08:00   ❤️ 1
    @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
        5
    tin  
    OP
       2014-07-28 15:16:37 +08:00
    @snachx 非常感谢。我去研究研究。有不明白再请教。谢谢
    tin
        6
    tin  
    OP
       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
        7
    snachx  
       2014-07-29 07:50:38 +08:00 via Android   ❤️ 1
    ansible-playbook --help
    tin
        8
    tin  
    OP
       2014-07-29 13:58:46 +08:00
    @snachx 谢谢,原来是两个"-"
    tin
        9
    tin  
    OP
       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
        10
    tin  
    OP
       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
        11
    snachx  
       2014-08-07 14:24:06 +08:00
    @tin 建议再去看一下 -i 参数的含义和INVENTORY的含义,-i 指定的内容是指在哪些机器上跑脚本,可以是本地的也可以是远程的等等

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

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

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

    https://github.com/wanglf/ansible-playbook
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 00:11 · PVG 08:11 · LAX 16:11 · JFK 19:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.