| 接下来,让我们将新文件提交到我们的仓库: git add local.ymlgit commit -m "initial commit"git push origin master
 现在我们的新剧本应该出现在我们的 GitHub 上的仓库中。我们可以使用以下命令应用我们创建的剧本: sudo ansible-pull -U https://github.com/<your_user_name>/ansible.git
 如果执行正确,htop包应该会安装在你的系统上。你可能会在开头附近看到一些警告,抱怨缺少库存清单文件。这很好,因为我们没有使用库存清单文件(我们也不需要这样做)。在输出结束时,它将概述它做的内容。如果htop安装正确,你应该在输出的最后一行看到changed = 1。 它是如何工作的呢?ansible-pull命令使用了-U选项,它需要一个仓库 URL。出于安全考虑,我给它提供了仓库 URL 的 https 版本,因为我不希望任何主机对仓库具有写访问权限(默认情况下 https 是只读的)。local.yml是预设的剧本名称,因此我们不需要为剧本提供文件名:如果它在仓库的根目录中找到名为local.yml的剧本,它将自动运行它。接下来,我们在命令前面使用了sudo,因为我们正在修改系统。 让我们继续为我们的剧本添加更多的包。我将添加两个包,使它看起来像这样: - hosts: localhost  become: true  tasks:  - name: Install htop    apt: name=htop   - name: Install mc    apt: name=mc     - name: Install tmux    apt: name=tmux
 我添加了更多的动作(任务)来安装另外两个包,mc和tmux。在此剧本中选择安装的哪些软件包并不重要;我只是随意挑选这些。你应该安装你希望所有的系统都具有的软件包。唯一需要注意的是,在你分发前,你必须知道那个包存在于软件仓库中。 在我们提交并应用这个更新的剧本之前,我们应该整理一下它。它可以很好地工作,但(说实话)它看起来有点混乱。让我们尝试在一个动作中安装所有三个包。用下面这个替换你的 local.yml的内容: - hosts: localhost  become: true  tasks:  - name: Install packages    apt: name={{item}}    with_items:      - htop      - mc      - tmux
 现在看起来更干净、更有效率了。我们使用 with_items将我们的包列表合并为一个动作。如果我们想要添加其他包,我们只需添加另一个带有连字符和包名称的行。可以把with_items看做类似于for循环。我们列出的每个包都将安装。 将我们的新更改提交回仓库: git add local.ymlgit commit -m "added additional packages, cleaned up formatting"git push origin master
 现在我们可以运行我们的剧本以接受新的新配置: sudo ansible-pull -U https://github.com/<your_user_name>/ansible.git
 不可否认,这个例子还没有做多少事情;它所做的就是安装一些软件包。你可以使用包管理器更快地安装这些包。然而,随着这个系列的继续,这些例子将变得更加复杂,我们将自动化更多的东西。最后,你创建的  Ansible 配置将自动执行越来越多的任务。例如,我自己使用的那个配置可以自动安装数百个软件包、设置cron 作业、处理桌面配置等等。 从我们迄今为止所取得的成就来看,你可能已经有了大概了解。我们所要做的就是创建一个仓库,在该仓库中放置一个剧本,然后利用 ansible-pull命令拉取该仓库并将其应用到我们的机器上。我们不需要设置服务器。将来,如果我们想要更改配置,我们可以拉取该仓库、更新它,然后将其推回到我们的仓库并应用它。如果我们要设置新机器,我们只需要安装 Ansible 并应用配置。 在下一篇文章中,我们将通过 cron 和一些其他项目进一步自动化。与此同时,我已将本文的代码复制到 我的 GitHub 仓库 中,以便你可以用你的语法对比一下我的。随着我们的进展,我会不断更新代码。 【编辑推荐】 
    【责任编辑:庞桂玉 TEL:(010)68476606】使用ARA分析Ansible运行如何用Ansible实现网络自动化开源工具 | Ansible入门秘诀使用Testinfra和Ansible验证服务器状态在Fedora中获取最新的Ansible 2.8 点赞 0
 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |