karlmdavis.rcm-dotfiles
Rola Ansible dla RCM
Ta rola Ansible może być używana do instalacji i konfiguracji RCM, zestawu narzędzi do zarządzania plikami konfiguracyjnymi (dotfiles).
Po zastosowaniu tej roli, repozytoria zdefiniowane w niej mogą być modyfikowane lokalnie. Nowe pliki konfiguracyjne utworzone w tych repozytoriach można wdrożyć, po prostu uruchamiając:
$ rcup -f
Wymagania
Ta rola wymaga następujących elementów na systemie zarządzania Ansible:
- Ansible>=2.4.0.0
- git>=1.7.1 (narzędzie wiersza poleceń)
Zarządzane systemy wymagają następujących elementów:
- Ubuntu 16.04 (chyba że używany jest
rcm_install_mode: no_internet
, w takim przypadku wspierane są prawie wszystkie systemy operacyjne)
Zmienne roli
Oto zmienne, które mogą być definiowane przez użytkowników:
rcm_user
: Użytkownik, dla którego będą instalowane repozytoria RCM.rcm_repos
: Lista repozytoriów Git, których pliki konfiguracyjne będą instalowane.repo
: URL repozytorium Git.refspec
: Specyficzna wersja Git do sklonowania, domyślnie jest tomaster
.dest
: Katalog, do którego zostanie sklonowane repozytorium.
rcm_install_mode
: Jeśli ustawione nano_internet
, rola będzie przeprowadzać wszystkie pobierania na systemie zarządzania Ansible, zamiast zakładać, że zarządzany system ma połączenie z Internetem. W tym trybie RCM będzie instalowane dla pojedynczego użytkownika, zamiast systemowo.rcm_replace_existing_files
: Jeśli ustawione natrue
, flaga-f
zostanie przekazana dorcup
, pozwalając jej na nadpisanie istniejących plików. Można to zastosować, na przykład, aby zastąpić domyślny plikbashrc
użytkownika plikiem z repozytorium dotfiles.
Zobacz defaults/main.yml dla listy domyślnych zmiennych i ich wartości domyślnych.
Zależności
Ta rola nie ma żadnych zależności na czas działania od innych ról Ansible.
Przykładowy Playbook
Oto przykład, jak zastosować tę rolę do hosta box
w playbooku Ansible:
- hosts: box
tasks:
- name: Instalacja i konfiguracja 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'
Środowisko deweloperskie
Aby opracować lub modyfikować ten projekt, należy zainstalować szereg narzędzi.
Python
Ten projekt wymaga Pythona 2.7. Można go zainstalować w następujący sposób:
$ sudo apt-get install python
virtualenv
Ten projekt ma kilka zależności, które muszą być zainstalowane za pomocą pip
(w przeciwieństwie do apt-get
). Dlatego zaleca się korzystanie z wirtualnego środowiska Pythona do zarządzania tymi zależnościami.
Jeśli nie jest już zainstalowane, zainstaluj pakiet virtualenv
. Na Ubuntu najlepiej zrobić to w następujący sposób:
$ sudo apt-get install python-virtualenv
Docker
Często przydatne jest uruchamianie lokalnie testowych kontenerów Docker. Aby to zrobić, należy mieć zainstalowany Docker. Instalacja tego wykracza poza zakres tego przewodnika, ale szybkie wyszukiwanie w Internecie powinno Ci pomóc.
Uruchamianie testów
Po zainstalowaniu tych narzędzi można użyć skryptu test/run-tests.sh
do uruchomienia testów lokalnie. Alternatywnie, zmiany można przesłać do gałęzi GitHub lub zgłoszenia pull, a Travis CI uruchomi testy za Ciebie: Travis CI: karlmdavis/ansible-role-rcm-dotfiles.
Licencja
Ten projekt jest objęty GNU General Public License, wersja 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