【问题标题】:How to import a module hosted in a git repo in ANSIBLE?如何在 ANSIBLE 中导入托管在 git repo 中的模块?
【发布时间】:2018-05-10 10:16:03
【问题描述】:

我正在编写需要安装 C++ Boost 库的剧本。

幸运的是,我找到了一个 GitHub 存储库,其中包含 Boost 库安装手册。

如何导入该剧本? Ansible 中是否有任何声明可以导入托管在 GitHub 中的模块?

【问题讨论】:

    标签: git deployment ansible


    【解决方案1】:

    您可以使用ansible-pull,它基本上会提取并应用托管在 git 存储库中的剧本。

    来自文档:

    ansible-pull -U <repository> [options] [<playbook.yml>]
    

    为了进行测试,您可以在存储库的根目录中拥有这个名为 /local.yml 的 playbook:

    ---
    - hosts: localhost
    
      tasks:
        - name:  uname
          command: uname -a
          register: uname
    
        - name: debug uname
          debug:
            msg: "{{ uname.stdout }}"
    

    然后你可以使用类似这样的方式调用它:

    ansible-pull -U git@github.com:<user>/ansible.git local.yml
    

    但从长远来看,为避免依赖存储库,您可能需要克隆模块/角色并调整您的剧本。

    【讨论】:

    • > 但从长远来看,为了避免依赖于存储库,除了依赖于你的环境,你可能想要克隆模块/角色并调整你的剧本。如果我将它复制到我的剧本中,我是否会在将来维护者更新他的模块时失去更新它的能力?
    • 能否在playbook中编码而不是在命令行中通过命令使用?
    • @VicenteAdolfoBoleaSánchez 检查ansible-galaxy 命令可能会给你一些想法
    猜你喜欢
    • 2021-05-02
    • 2019-08-07
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多