rcm-dotfiles
Ansible роль для RCM
Эта 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
: Список Git репозиториев, dotfiles из которых будут установлены.repo
: URL Git репозитория.refspec
: Конкретная версия Git для клонирования, по умолчаниюmaster
.dest
: Каталог, в который будет клонирован репозиторий.
rcm_install_mode
: Если установлено вno_internet
, роль выполнит все загрузки на системе управления Ansible, а не будет предполагать, что управляемая система имеет интернет-соединение. В этом режиме RCM будет установлен для каждого пользователя, а не для всей системы.rcm_replace_existing_files
: Если установлено вtrue
, флаг-f
будет передан вrcup
, позволяя перезаписать существующие файлы. Это можно использовать, например, для замены стандартного файлаbashrc
пользователя на файл из вашего репозитория dotfiles.
Смотрите defaults/main.yml для списка стандартных переменных и их значений по умолчанию.
Зависимости
Эта роль не имеет зависимостей во время выполнения от других ролей Ansible.
Пример плейбука
Вот пример, как применить эту роль к хосту box
в Ansible плейбуке:
- 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. Установка Docker не входит в объем данного руководства, но поиск в интернете поможет вам начать.
Запуск тестов
После установки этих инструментов, скрипт test/run-tests.sh
можно использовать для запуска тестов локально. Кроме того, изменения можно отправить в ветку или пул-реквест на GitHub, и Travis CI запустит тесты за вас: Travis CI: karlmdavis/ansible-role-rcm-dotfiles.
Лицензия
Этот проект лицензирован под GNU General Public License, Version 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/ansible-role-rcm-dotfiles