karlmdavis.rcm-dotfiles

构建状态

RCM 的 Ansible 角色

这个 Ansible 角色可以用来安装和配置 RCM,一个管理 dotfiles 的工具。

一旦应用了这个角色,定义的仓库可以在本地进行修改。在这些仓库中创建的新 dotfiles 可以通过简单地运行以下命令来部署:

$ rcup -f

需求

这个角色在 Ansible 管理系统上需要以下内容:

  • Ansible >= 2.4.0.0
  • git >= 1.7.1 (命令行工具)

被管理的系统需要以下内容:

  • Ubuntu 16.04 (除非使用 rcm_install_mode: no_internet,在这种情况下,几乎任何操作系统都可以支持)

角色变量

以下是用户可以定义的变量:

  • rcm_user:将为其安装 RCM 仓库的用户。
  • rcm_repos:将安装其 dotfiles 的 Git 仓库列表。
    • repo:Git 仓库的 URL。
    • refspec:要克隆的特定 Git 修订,默认为 master
    • dest:克隆仓库的目录。
  • rcm_install_mode:如果设置为 no_internet,该角色将在 Ansible 管理系统上执行所有下载,而不是假设被管理的系统具有互联网连接。此模式下,RCM 将按用户安装,而不是全系统安装。
  • rcm_replace_existing_files:如果设置为 true,将把 -f 标志传递给 rcup,允许它覆盖现有文件。这可以用于,比如,用您的 dotfiles 仓库中的文件替换用户的默认 bashrc 文件。

请参见 defaults/main.yml 获取默认变量及其默认值的列表。

依赖关系

这个角色没有其他 Ansible 角色的运行时依赖关系。

示例剧本

以下是如何在 Ansible 剧本中将这个角色应用到 box 主机的示例:

- hosts: box
  tasks:
    - name: 安装和配置 RCM
      include_role:
        name: karlmdavis.rcm-dotfiles
      vars:
        rcm_user: ansible_test
        rcm_install_mode: no_internet
        rcm_repos:
          - repo: 'https://foosball.example.com/path/to/repo.git'
            dest: '/home/karl/.dotfiles-repo.git'

开发环境

为了开发/修改这个项目,需要安装一些工具。

Python

该项目需要 Python 2.7。可以通过以下方式安装:

$ sudo apt-get install python

virtualenv

该项目有一些需要通过 pip 安装的依赖(而不是 apt-get)。因此,强烈建议您使用 Python 虚拟环境 来管理这些依赖。

如果尚未安装,请安装 virtualenv 包。在 Ubuntu 上,最好通过以下方式安装:

$ sudo apt-get install python-virtualenv

Docker

在本地启动测试 Docker 容器通常非常有用。为此,必须安装 Docker。安装方法超出了本指南的范围,但快速搜索一下应该可以帮助您入门。

运行测试

一旦这些工具安装完成,可以使用 test/run-tests.sh 脚本在本地运行测试。或者,可以将更改推送到 GitHub 分支或拉取请求,Travis CI 将为您运行测试:Travis CI: karlmdavis/ansible-role-rcm-dotfiles

许可

这个项目根据 GNU 通用公共许可证第 3 版 许可。

关于项目

This Ansible role can be used to install and configure RCM (https://github.com/thoughtbot/rcm), a management suite for dotfiles.

安装
ansible-galaxy install karlmdavis.rcm-dotfiles
许可证
gpl-3.0
下载
149
拥有者