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 版 许可。