配置管理 ansible_使用Ansible管理您的工作站:配置桌面设置

配置管理 ansible

在本系列的第一篇有关使用Ansible配置工作站的文章中,我们建立了一个存储库并配置了一些基本的东西。 在第二部分中 ,我们自动使Ansible在对存储库进行更改时自动应用设置。 在第三篇(也是最后一篇)文章中,我们将使用Ansible配置GNOME桌面设置。

此配置仅适用于较新的发行版(例如我将在示例中使用的Ubuntu 18.04)。 较旧的Ubuntu版本将无法使用,因为它们随附的python-psutils版本过旧,导致Ansible的dconf模块无法正常工作。 如果您使用的是Linux发行版的较新版本,则应该没有问题。

在开始之前,请确保您已经完成了本系列的第一和第二部分,而第三部分是建立在该基础之上的。 如果尚未下载,请下载前两篇文章中一直在使用的存储库 。 我们将为其添加更多功能。

设置墙纸并锁定屏幕

首先,我们将创建一个任务簿来保存我们的GNOME设置。 在存储库的根目录中,应该有一个名为local.yml的文件。 向其添加以下行:

 - include: tasks/gnome.yml 

现在,整个文件应如下所示:


   
   
- hosts: localhost
  become: true
  pre_tasks:
    - name: update repositories
      apt: update_cache=yes
      changed_when: False

  tasks:
    - include: tasks/users.yml
    - include: tasks/cron.yml
    - include: tasks/packages.yml
    - include: tasks/gnome.yml

基本上,这添加了对名为gnome.yml的文件的引用,该文件将存储在资源库内的tasks目录中。 我们尚未创建此文件,所以现在开始做。 在tasks目录中创建gnome.yml文件,并将以下内容放入其中:


   
   
- name: Install python-psutil package
  apt: name=python-psutil

- name: Copy wallpaper file
  copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600

- name: Set GNOME Wallpaper
  become_user: jay
  dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"

请注意,此代码多次引用了我的用户名( jay ),因此请确保将每次出现的jay替换为您在计算机上使用的用户名。 另外,如果您不使用Ubuntu 18.04(按我的方式),则必须更改apt行以匹配所选发行版的软件包管理器,并确认发行版的python-psutil软件包的名称,如下所示:可能会有所不同。

files目录中的wallpaper.jpg 。 该文件必须存在,否则Ansible配置将失败。 在tasks目录中,创建一个名为files的子目录。 找到您喜欢的墙纸图像,将其命名为wallpaper.jpg ,并将其放置在files目录中。 如果文件是PNG图像而不是JPG,请在代码和存储库中都更改文件扩展名。 如果您不觉得有创意,可以在本系列文章的资源库中找到一个示例墙纸文件。

完成所有这些更改后,将所有内容提交到存储库,然后推送这些更改。 回顾一下,您应该完成以下步骤:

  • 修改了local.yml文件以引用tasks/gnome.yml剧本
  • 使用上述内容创建了tasks/gnome.yml剧本
  • tasks目录中创建了一个files目录,其中包含一个名为wallpaper.jpg的图像文件(或您选择的任何名称)。

完成这些步骤并将更改推回存储库后,应在下一次计划运行期间自动应用配置。 (您可能还记得我们在上一篇文章中对此进行了自动化。)如果您很着急,可以使用以下命令立即应用配置:

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

如果一切正常,您应该会看到新墙纸。

让我们花点时间浏览一下新的GNOME任务手册的功能。 首先,我们添加了一个戏剧来安装python-psutil软件包。 如果不添加它,则不能使用dconf模块,因为它需要先安装此软件包,然后才能修改GNOME设置。 接下来,我们使用copy模块将墙纸文件复制到我们的home目录,并以一个隐藏点的句点开头命名结果文件。 如果您不希望将此文件放在home目录的根目录中,则可以始终指示此部分将其复制到其他位置,只要您在正确的位置引用它,它仍然可以使用。 在下一个播放中,我们使用dconf模块更改GNOME设置。 在这种情况下,我们调整了/org/gnome/desktop/background/picture-uri键,并将其设置为file:///home/jay/.wallpaper.jpg 。 请注意剧本这一节中的引号-您必须在dconf值中始终使用两个单引号,如果值是字符串,则还必须包括双引号。

现在,让我们进一步进行配置,并将背景应用于锁定屏幕。 这是GNOME任务簿,但又添加了两个附加功能:


   
   
- name: Install python-psutil package
  apt: name=python-psutil

- name: Copy wallpaper file
  copy: src=files/wallpaper.jpg dest=/home/jay/.wallpaper.jpg owner=jay group=jay mode=600

- name: Set GNOME wallpaper
  dconf: key="/org/gnome/desktop/background/picture-uri" value="'file:///home/jay/.wallpaper.jpg'"

- name: Copy lockscreenfile
  copy: src=files/lockscreen.jpg dest=/home/jay/.lockscreen.jpg owner=jay group=jay mode=600

- name: Set lock screen background
  become_user: jay
  dconf: key="/org/gnome/desktop/screensaver/picture-uri" value="'file:///home/jay/.lockscreen.jpg'"

如您所见,我们几乎在做与墙纸相同的事情。 我们添加了两个附加任务,一个任务是复制锁定屏幕图像并将其放置在我们的home目录中,另一个任务是将该设置应用于GNOME以便使用。 同样,请确保从jay更改用户名,并命名所需的锁屏图片lockscreen.jpg并将其复制到files目录。 将这些更改提交到存储库后,应在下一次计划的Ansible运行期间应用新的锁定屏幕。

应用新的桌面主题

设置墙纸和锁屏背景非常酷,但让我们更进一步,应用桌面主题。 首先,让我们在任务簿中添加一条说明,以安装用于arc主题的软件包。 将以下代码添加到GNOME任务簿的开头:


   
   
- name: Install arc theme
  apt: name=arc-theme

然后,在底部添加以下播放:


   
   
- name: Set GTK theme
  become_user: jay
  dconf: key="/org/gnome/desktop/interface/gtk-theme" value="'Arc'"

您是否在眼前看到GNOME的GTK主题发生了变化? 我们添加了一个通过apt模块安装arc-theme软件包的玩法,以及另一个将该主题应用于GNOME的游戏。

进行其他自定义

现在,您已经更改了一些GNOME设置,可以随时自行添加其他自定义设置。 您可以在GNOME中进行调整的任何设置都可以通过这种方式自动进行; 设置墙纸和主题只是几个示例。 您可能想知道如何找到要更改的设置。 这是一个对我有用的技巧。

首先,通过在要管理的计算机上运行以下命令,对所有当前dconf设置进行快照:

 dconf dump / > before.txt 

此命令将当前所有更改导出到名为before.txt的文件。 接下来,手动更改要自动化的设置,然后再次捕获dconf设置:

 dconf dump / > after.txt 

现在,您可以使用diff命令查看两个文件之间的区别:

 diff before.txt after.txt 

这应该给您列出了已更改的键。 确实,手动更改设置会破坏自动化的目的,但实际上,您要做的是捕获在更新首选设置时更改的键,这样您就可以创建Ansible剧本来修改这些设置,因此您永远不需要再次触摸这些设置。 如果您需要还原计算机,则Ansible存储库将处理您的每个自定义项。 如果您有多台计算机,甚至有一组工作站,则只需手动   进行一次更改,所有其他工作站将应用新设置并完全同步。

结语

如果按照本系列进行了学习,则应该知道如何设置Ansible来使您的工作站自动化。 这些示例提供了有用的基准,您可以使用语法和示例进行其他自定义。 在进行过程中,您可以继续添加新的修改,这将使您的Ansible配置随时间增长。

我以这种方式使用Ansible来自动化一切,包括我的用户帐户和密码。 Vim,tmux等的配置文件; 桌面套件; SSH设置; SSH密钥; 基本上我想自定义的所有内容 以本系列文章为起点,将为您完全自动化工作站铺平道路。

翻译自: https://opensource.com/article/18/5/manage-your-workstation-ansible-part-3

配置管理 ansible

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值