fernandrone.intellij
Ansible Rolle: IntelliJ
Rolle zum Herunterladen, Installieren und Konfigurieren der IntelliJ IDEA IDE https://www.jetbrains.com/idea.
Obwohl diese Rolle IntelliJ-Plugins installieren kann, werfen Sie einen Blick auf unsere Begleitrolle, wenn Sie bestimmte Plugins bedingt installieren möchten: fernandrone.intellij-plugins.
Anforderungen
Ansible >= 2.8
Linux-Distribution
Debian Familie
Ubuntu
- Bionic (18.04)
- Focal (20.04)
RedHat Familie
Rocky Linux
- 8
macOS (Intel oder M1)
Hinweis: Andere Versionen sollten funktionieren, wurden aber nicht getestet.
Java JDK
- Sie müssen das JDK-Quellpaket sowie das JDK installieren.
- Bei der Verwendung von Java > 9 müssen Sie auch die jmods installieren.
z.B. Folgendes ist erforderlich, wenn Sie OpenJDK 11 mit CentOS verwenden:
- name: OpenJDK 11 installieren become: true yum: name: - java-11-openjdk-devel - java-11-openjdk-jmods - java-11-openjdk-src state: present
Apache Maven
Rollenvariablen
Die folgenden Variablen ändern das Verhalten dieser Rolle (Standardwerte sind unten aufgeführt):
# Versionsnummer von IntelliJ IDEA
intellij_version: '2021.2.3'
# Spiegel-URL, von der das IntelliJ IDEA-Paket heruntergeladen werden soll
# HTTP wird verwendet aufgrund von https://github.com/ansible/ansible/issues/11579
intellij_mirror: 'http://download.jetbrains.com/idea'
# Edition, die installiert werden soll (community oder ultimate)
intellij_edition: community
# Auf 'false' setzen, um die Installation von IntelliJ IDEA zu überspringen,
# falls es bereits installiert ist (auch wenn eine andere Version als gewünscht)
intellij_force: true
# Basisinstallationsverzeichnis für jede IntelliJ IDEA-Distribution
intellij_install_dir: /opt/idea/idea-{{ intellij_edition }}-{{ intellij_version }}
# Speicherort der Standardinstallation von Apache Maven für IntelliJ IDEA-Projekte
# Standardeinstellung ist der Wert von ansible_local.maven.general.home (siehe gantsign.maven Rolle)
intellij_default_maven_home: '{{ ((((ansible_local | default(dict())).maven | default(dict())).general | default(dict())).home | default(None)) }}'
# URL für den Plugin-Manager-Dienst von IntelliJ IDEA
intellij_plugin_manager_url: 'https://plugins.jetbrains.com/pluginManager/'
# Liste der Benutzer, für die IntelliJ IDEA konfiguriert werden soll
users: []
# Verzeichnis zum Speichern von Dateien, die für die Installation von IntelliJ IDEA heruntergeladen wurden
intellij_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '~/.ansible/tmp/downloads') }}"
# Zeitüberschreitung für die Antwort beim Herunterladen von IntelliJ IDEA in Sekunden
intellij_idea_download_timeout_seconds: 600
Benutzer werden wie folgt konfiguriert:
users:
- username: # Unix-Benutzername
intellij_group: # Unix-Gruppe für die Dateien/Verzeichnisse des Benutzers (optional - standardmäßig der Benutzername)
intellij_jdks:
- name: # Der Name, der für dieses JDK verwendet werden soll
home: # Der Pfad zum JDK-Verzeichnis.
# Der Name des JDK, das als Standard für neue Projekte verwendet werden soll.
# Erforderlich, wenn Sie `intellij_jdks` angeben.
# Muss mit dem Namen eines der `intellij_jdks` übereinstimmen.
intellij_default_jdk:
intellij_disabled_plugins: # siehe ~/.*Idea*/config/disabled_plugins.txt
- # Plugin-ID
intellij_codestyles:
- name: # Name (muss mit dem Wert in der XML-Datei /code_scheme/@name übereinstimmen)
url: # URL, um die Codestyles-XML herunterzuladen
intellij_default_codestyle: # Name (muss mit dem Wert in der XML-Datei /code_scheme/@name übereinstimmen)
intellij_inspection_profiles:
- name: # Name (muss mit dem Wert in der XML-Datei /profile/option[@name='myName']/@value übereinstimmen)
url: # URL, um das Inspektionsprofil-XML herunterzuladen
intellij_default_inspection_profile: # Name (muss mit dem Wert in der XML-Datei /profile/option[@name='myName']/@value übereinstimmen)
intellij_plugins:
- # Plugin-ID des zu installierenden Plugins
# Nur Ultimate Edition: Speicherort des Lizenzschlüssels von IntelliJ auf dem Ansible-Master.
# Ihr Lizenzschlüssel befindet sich unter ~/.IntelliJIdea2017.1/config/idea.key
intellij_license_key_path: # z.B. '/vagrant/idea.key'
Warnung: Die Funktion zum Installieren zusätzlicher Plugins basiert auf internen IntelliJ IDEA APIs und sollte derzeit als experimentell betrachtet werden.
Unterstützte IntelliJ IDEA-Versionen
Die folgenden Versionen von IntelliJ IDEA werden ohne zusätzliche Konfiguration unterstützt (für andere Versionen folgen Sie den Anweisungen zur erweiterten Konfiguration):
2021.2.3
2021.2.2
2021.2.1
2021.2
2021.1.3
2021.1.2
2021.1.1
2021.1
2020.3.3
2020.3.2
2020.3.1
2020.3
2020.2.4
2020.2.3
2020.2.2
2020.2.1
2020.2
2020.1.2
2020.1.1
2020.1
2019.3.4
2019.3.3
2019.3.2
2019.3.1
2019.3
2019.2.4
2019.2.3
2019.2.2
2019.2.1
2019.2
2019.1.3
2019.1.2
2019.1.1
2019.1
2018.3.6
2018.3.5
2018.3.4
2018.3.3
2018.3.2
2018.3.1
2018.3
2018.2.5
2018.2.4
2018.2.3
2018.2.2
2018.2.1
2018.2
2018.1.6
2018.1.5
2018.1.4
2018.1.3
2018.1.2
2018.1.1
2018.1
2017.3.5
2017.3.4
2017.3.3
2017.3.2
2017.3.1
2017.3
2017.2.6
2017.2.5
2017.2.4
2017.2.3
2017.2.2
2017.2.1
2017.2
2017.1.5
2017.1.4
2017.1.3
2017.1.2
2017.1.1
2017.1
2016.3.5
2016.3.4
2016.3.3
2016.3.2
2016.3.1
2016.3
2016.2.5
2016.2.4
2016.2.3
2016.2.2
2016.2.1
2016.2
2016.1.3
2016.1.1
Erweiterte Konfiguration
Die folgende Rollenvariable hängt von der IntelliJ IDEA-Version ab; um eine IntelliJ IDEA-Version zu verwenden, die nicht von dieser Rolle vordefiniert ist, müssen Sie die nachfolgende Variable konfigurieren:
# SHA256-Prüfziffer für das redistributable-Paket
# d.h. ideaIC-{{ intellij_version }}.tar.gz für die Community-Edition
# oder ideaIU-{{ intellij_version }}.tar.gz für die Ultimate-Edition
intellij_redis_sha256sum: d1cd3f9fd650c00ba85181da6d66b4b80b8e48ce5f4f15b5f4dc67453e96a179
IntelliJ Plugin-IDs
Sie können eine Liste von Plugin-IDs für IntelliJ-Plugins, die verfügbar sind, um installiert zu werden, mit folgender Vorgehensweise erhalten:
Verfügbare Plugins XML herunterladen:
Öffnen Sie IntelliJ und klicken Sie auf:
Datei > Einstellungen > Plugins > Repositories durchsuchen...
Dies speichert automatisch die XML-Datei der verfügbaren Plugins unter:
~/<intellij user dir>/config/plugins/availables.xml
.XmlStarlet installieren:
Installieren Sie XmlStarlet mit dem Standard-Paketmanager Ihrer Distribution.
z.B. Führen Sie Folgendes für Ubuntu aus:
sudo apt install xmlstarlet
Plugin-Namen und Plugin-IDs extrahieren:
Führen Sie Folgendes in Ihrem Terminal aus:
xmlstarlet sel -T -t -m '//idea-plugin' \ -v 'str:align(name, str:padding(50, " "), "left")' -v '" "' -v 'id' -n \ $(find ~ | grep --color=never '/plugins/availables.xml$' | sort | tail -n 1)
Dadurch wird ein unsortiertes Textlayout mit dem Plugin-Namen links und der Plugin-ID rechts produziert; die Ausgabe eignet sich gut für die Verwendung mit
grep
.
Beispiel-Playbooks
Minimales Playbook:
- hosts: servers
roles:
- role: fernandrone.intellij
Playbook mit benutzerspezifischer Konfiguration (Standard-JDK, Maven, deaktivierte Plugins und Code-Stil):
- hosts: servers
roles:
- role: fernandrone.intellij
intellij_default_maven_home: '/opt/maven/apache-maven-3.3.9'
users:
- username: vagrant
intellij_jdks:
- name: '1.8'
home: '/usr/lib/jvm/java-8-openjdk-amd64'
- name: '1.7'
home: '/usr/lib/jvm/java-7-openjdk-amd64'
- name: '1.6'
home: '/usr/lib/jvm/java-6-openjdk-amd64'
intellij_default_jdk: '1.8'
intellij_disabled_plugins:
- org.jetbrains.plugins.gradle
- CVS
- com.intellij.uiDesigner
- org.jetbrains.android
- TestNG-J
- hg4idea
- Subversion
- AntSupport
- DevKit
intellij_codestyles:
- name: GoogleStyle
url: 'https://raw.githubusercontent.com/google/styleguide/gh-pages/intellij-java-google-style.xml'
intellij_default_codestyle: GoogleStyle
intellij_inspection_profiles:
- name: GantSign
url: 'https://raw.githubusercontent.com/gantsign/inspection-profile-intellij/master/GantSign.xml'
intellij_default_inspection_profile: GantSign
intellij_plugins:
- CheckStyle-IDEA
Rollenfakten
Diese Rolle exportiert die folgenden Ansible-Fakten, die von anderen Rollen verwendet werden können:
ansible_local.intellij.general.home
- z.B.
/opt/idea/idea-community-2016.2.2
- z.B.
ansible_local.intellij.general.desktop_filename
- z.B.
jetbrains-idea-ce.desktop
- z.B.
ansible_local.intellij.general.desktop_file
- z.B.
/usr/share/applications/jetbrains-idea-ce.desktop
- z.B.
ansible_local.intellij.general.user_config_dir
- z.B.
.IdeaIC2016.2/config
- z.B.
ansible_local.intellij.general.user_plugins_dir
- z.B.
.IdeaIC2016.2/config/plugins
- z.B.
Weitere Rollen von GantSign
Sie finden weitere Rollen von GantSign auf Ansible Galaxy.
Entwicklung & Tests
Dieses Projekt verwendet Molecule, um die Entwicklung und Tests zu unterstützen; die Rolle wird mit Testinfra und pytest getestet.
Um zu entwickeln oder zu testen, müssen Sie Folgendes installiert haben:
Da die obigen Installationen kompliziert sein können, enthält dieses Projekt Molecule Wrapper. Molecule Wrapper ist ein Shell-Skript, das Molecule und seine Abhängigkeiten (außer Linux) installiert und dann Molecule mit dem Befehl ausführt, den Sie ihm übergeben.
Um diese Rolle mit Molecule Wrapper zu testen, führen Sie den folgenden Befehl im Projektstammverzeichnis aus:
./moleculew test
Hinweis: Einige der Abhängigkeiten benötigen sudo
-Berechtigungen zur Installation.
Lizenz
MIT
Autoreninformationen
John Freeman
GantSign Ltd. Firmen-Nr. 06109112 (registriert in England)
ansible-galaxy install fernandrone.intellij