karlmdavis.rcm-dotfiles
Ansible-Rolle für RCM
Diese Ansible-Rolle kann verwendet werden, um RCM zu installieren und zu konfigurieren, ein Verwaltungstool für Dotfiles.
Nachdem diese Rolle angewendet wurde, können die dafür definierten Repos lokal geändert werden. Neue Dotfiles, die in diesen Repos erstellt werden, können einfach durch Ausführen des folgenden Befehls bereitgestellt werden:
$ rcup -f
Anforderungen
Diese Rolle benötigt Folgendes im Ansible-Verwaltungssystem:
- Ansible>=2.4.0.0
- git>=1.7.1 (das Kommandozeilen-Tool)
Die zu verwaltenden Systeme benötigen Folgendes:
- Ubuntu 16.04 (es sei denn,
rcm_install_mode: no_internetwird verwendet, in diesem Fall sollte jedes beliebige Betriebssystem unterstützt werden)
Rollenspezifische Variablen
Hier sind die Variablen, die von Benutzern definiert werden können:
rcm_user: Der Benutzer, für den die RCM-Repos installiert werden.rcm_repos: Die Liste der Git-Repositories, deren Dotfiles installiert werden.repo: Die Git-Repo-URL.refspec: Die spezifische Git-Version, die geklont werden soll, standardmäßig aufmaster.dest: Das Verzeichnis, in das das Repo geklont werden soll.
rcm_install_mode: Wenn aufno_internetgesetzt, werden alle Downloads im Ansible-Verwaltungssystem durchgeführt, anstatt anzunehmen, dass das verwaltete System eine Internetverbindung hat. In diesem Modus wird RCM pro Benutzer anstelle systemweit installiert.rcm_replace_existing_files: Wenn auftruegesetzt, wird das-f-Flag anrcupübergeben, sodass vorhandene Dateien überschrieben werden können. Dies kann verwendet werden, um beispielsweise die Standard-bashrc-Datei des Benutzers durch eine aus deinem Dotfiles-Repo zu ersetzen.
Siehe defaults/main.yml für die Liste der Standardvariablen und deren Standardwerte.
Abhängigkeiten
Diese Rolle hat keine Laufzeitabhängigkeiten von anderen Ansible-Rollen.
Beispiel-Playbook
Hier ist ein Beispiel, wie man diese Rolle auf dem box-Host in einem Ansible-Play anwendet:
- hosts: box
tasks:
- name: RCM installieren und konfigurieren
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'
Entwicklungsumgebung
Um dieses Projekt zu entwickeln oder zu ändern, müssen eine Reihe von Werkzeugen installiert werden.
Python
Dieses Projekt benötigt Python 2.7. Es kann wie folgt installiert werden:
$ sudo apt-get install python
virtualenv
Dieses Projekt hat einige Abhängigkeiten, die über pip (anstatt von apt-get) installiert werden müssen. Daher wird dringend empfohlen, ein Python-virtuelles Umfeld zu verwenden, um diese Abhängigkeiten zu verwalten.
Wenn es noch nicht installiert ist, installiere das Paket virtualenv. Auf Ubuntu wird dies am besten durchgeführt durch:
$ sudo apt-get install python-virtualenv
Docker
Es kann oft nützlich sein, die Test-Docker-Container lokal zu starten. Dazu muss Docker installiert sein. Die Installation hierfür fällt nicht in den Rahmen dieses Leitfadens, aber eine schnelle Websuche sollte dir dabei helfen.
Tests ausführen
Sobald diese Werkzeuge installiert sind, kann das Skript test/run-tests.sh verwendet werden, um die Tests lokal auszuführen. Alternativ können Änderungen in einen GitHub-Branch oder Pull-Request gepusht werden, und Travis CI führt die Tests für dich aus: Travis CI: karlmdavis/ansible-role-rcm-dotfiles.
Lizenz
Dieses Projekt steht unter der 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.rcm-dotfiles