加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

使用Ansible来管理你的工作站:配置自动化

发布时间:2019-07-18 01:36:46 所属栏目:Windows 来源:Jay Lacroi
导读:副标题#e# 学习如何使 Ansible 自动对一系列台式机和笔记本应用配置。 Ansible 是一个令人惊讶的自动化的配置管理工具。其主要应用在服务器和云部署上,但在工作站上的应用(无论是台式机还是笔记本)却鲜少得到关注,这就是本系列所要关注的。 在这个系列

然而,我们已经解决了这个问题。注意我在定时作业中的命令 ansible-pill 添加的我们之前从未用到过的参数 -o。这个参数告诉 Ansible 只有在从上次 ansible-pull 被调用以后库有了变化后才会运行。如果库没有任何变化,它将不会做任何事情。通过这个方法,你将不会无端的浪费 CPU 资源。当然在拉取存储库的时候会使用一些 CPU 资源,但不会像再一次应用整个配置的时候使用的那么多。当 ansible-pull 执行的时候,它将会遍历剧本和任务手册中的所有任务,但至少它不会毫无目的的运行。

尽管我们已经添加了所有必须的配置要素来自动化 ansible-pull,它仍然还不能正常的工作。ansible-pull 命令需要 sudo 的权限来运行,这将允许它执行系统级的命令。然而我们创建的用户 ansible 并没有被设置为以 sudo 的权限来执行命令,因此当定时作业触发的时候,执行将会失败。通常我们可以使用命令 visudo 来手动的去设置用户 ansible 去拥有这个权限。然而我们现在应该以 Ansible 的方式来操作,而且这将会是一个向你展示 copy 模块是如何工作的机会。copy 模块允许你从库复制一个文件到文件系统的任何位置。在这个案列中,我们将会复制 sudo 的一个配置文件到 /etc/sudoers.d/ 以便用户 ansible 能够以管理员的权限执行任务。

打开 users.yml,将下面的的动作添加到文件末尾。

  1. - name: copy sudoers_ansible
  2. copy: src=files/sudoers_ansible dest=/etc/sudoers.d/ansible owner=root group=root mode=0440

正如我们看到的,copy模块从我们的仓库中复制一个文件到其他任何位置。在这个过程中,我们正在抓取一个名为 sudoers_ansible(我们将在后续创建)的文件并将它复制为 /etc/sudoers/ansible,并且拥有者为 root

接下来,我们需要创建我们将要复制的文件。在你的仓库的根目录下,创建一个名为 files 的目录:

  1. mkdir files

然后,在我们刚刚创建的 files 目录里,创建名为 sudoers_ansible 的文件,包含以下内容:

  1. ansible ALL=(ALL) NOPASSWD: ALL

就像我们正在这样做的,在 /etc/sudoer.d 目录里创建一个文件允许我们为一个特殊的用户配置 sudo 权限。现在我们正在通过 sudo 允许用户 ansible 不需要密码提示就拥有完全控制权限。这将允许 ansible-pull 以后台任务的形式运行而不需要手动去运行。

现在,你可以通过再次运行 ansible-pull 来拉取最新的变动:

  1. sudo ansible-pull -U https://github.com/<github_user>/ansible.git

从这里开始,ansible-pull 的定时作业将会在后台每隔十分钟运行一次来检查你的仓库是否有变化,如果它发现有变化,将会运行你的剧本并且应用你的任务手册。

所以现在我们有了一个完整的可工作方案。当你第一次设置一台新的笔记本或者台式机的时候,你要去手动的运行 ansible-pull 命令,但仅仅是在第一次的时候。从第一次之后,用户 ansible 将会在后台接手后续的运行任务。当你想对你的机器做变动的时候,你只需要简单的去拉取你的 Git 仓库来做变动,然后将这些变化回传到库中。接着,当定时作业下次在每台机器上运行的时候,它将会拉取变动的部分并应用它们。你现在只需要做一次变动,你的所有工作站将会跟着一起变动。这方法尽管有一点不同寻常,通常,你会有一个包含你的机器列表和不同机器所属规则的清单文件。然而,ansible-pull 的方法,就像在文章中描述的,是管理工作站配置的非常有效的方法。

我已经在我的 Github 仓库中更新了这篇文章中的代码,所以你可以随时去浏览来对比检查你的语法。同时我将前一篇文章中的代码移到了它自己的目录中。

在第三部分,我们将通过介绍使用 Ansible 来配置 GNOME 桌面设置来结束这个系列。我将会告诉你如何设置你的墙纸和锁屏壁纸、应用一个桌面主题以及更多的东西。

同时,到了布置一些作业的时候了,大多数人都有我们所使用的各种应用的配置文件。可能是 Bash、Vim 或者其他你使用的工具的配置文件。现在你可以尝试通过我们在使用的 Ansible 库来自动复制这些配置到你的机器中。在这篇文章中,我已将向你展示了如何去复制文件,所以去尝试以下看看你是都已经能应用这些知识。

【编辑推荐】

  1. 如何用Ansible实现网络自动化
  2. 开源工具 | Ansible入门秘诀
  3. 使用Testinfra和Ansible验证服务器状态
  4. 在Fedora中获取最新的Ansible 2.8
  5. 如何使用Ansible管理你的工作站配置
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读