fernandrone.intellij
Rôle Ansible : IntelliJ
Rôle pour télécharger, installer et configurer l'IDE IntelliJ IDEA https://www.jetbrains.com/idea.
Bien que ce rôle puisse installer des plugins IntelliJ, si vous souhaitez installer certains plugins de manière conditionnelle, consultez notre rôle compagnon : fernandrone.intellij-plugins.
Exigences
Ansible >= 2.8
Distribution Linux
Famille Debian
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Famille RedHat
Rocky Linux
- 8
macOS (Intel ou M1)
Remarque : d'autres versions fonctionneront probablement mais n'ont pas été testées.
Java JDK
- Vous devez installer le JDK source ainsi que le JDK.
- Si vous utilisez Java > 9, vous devez également installer les jmods.
Par exemple, ce qui suit est requis si vous utilisez OpenJDK 11 avec CentOS :
- name: Installer OpenJDK 11 become: true yum: name: - java-11-openjdk-devel - java-11-openjdk-jmods - java-11-openjdk-src state: present
Apache Maven
Variables de Rôle
Les variables suivantes changeront le comportement de ce rôle (les valeurs par défaut sont affichées ci-dessous) :
# Numéro de version d'IntelliJ IDEA
intellij_version: '2021.2.3'
# Miroir d'où télécharger le package redistribuable d'IntelliJ IDEA
# Utilisation de HTTP en raison de https://github.com/ansible/ansible/issues/11579
intellij_mirror: 'http://download.jetbrains.com/idea'
# Édition à installer (community ou ultimate)
intellij_edition: community
# Définit sur 'false' pour ignorer l'installation d'IntelliJ IDEA si elle est
# déjà installée (même si une version différente de celle demandée)
intellij_force: true
# Répertoire d'installation de base pour toute distribution d'IntelliJ IDEA
intellij_install_dir: /opt/idea/idea-{{ intellij_edition }}-{{ intellij_version }}
# Emplacement de l'installation par défaut d'Apache Maven pour les projets IntelliJ IDEA
# Valeur par défaut de ansible_local.maven.general.home (voir rôle gantsign.maven)
intellij_default_maven_home: '{{ ((((ansible_local | default(dict())).maven | default(dict())).general | default(dict())).home | default(None)) }}'
# URL pour le service web du gestionnaire de plugins d'IntelliJ IDEA
intellij_plugin_manager_url: 'https://plugins.jetbrains.com/pluginManager/'
# Liste des utilisateurs à configurer pour IntelliJ IDEA
users: []
# Répertoire pour stocker les fichiers téléchargés pour l'installation d'IntelliJ IDEA
intellij_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '~/.ansible/tmp/downloads') }}"
# Délai d'attente pour la réponse de téléchargement d'IntelliJ IDEA en secondes
intellij_idea_download_timeout_seconds: 600
Les utilisateurs sont configurés comme suit :
users:
- username: # Nom d'utilisateur Unix
intellij_group: # Groupe Unix pour les fichiers/répertoires de l'utilisateur (optionnel - par défaut, correspond au nom d'utilisateur)
intellij_jdks:
- name: # Le nom que vous voulez utiliser pour ce JDK
home: # Le chemin vers le répertoire d'accueil du JDK.
# Le nom du JDK que vous voulez comme défaut pour les nouveaux projets.
# Requis si vous spécifiez `intellij_jdks`.
# Doit correspondre au nom donné à l'un des `intellij_jdks`.
intellij_default_jdk:
intellij_disabled_plugins: # voir ~/.*Idea*/config/disabled_plugins.txt
- # ID du plugin
intellij_codestyles:
- name: # Nom (doit correspondre à la valeur dans le fichier XML /code_scheme/@name)
url: # URL pour télécharger le XML des styles de code
intellij_default_codestyle: # Nom (doit correspondre à la valeur dans le fichier XML /code_scheme/@name)
intellij_inspection_profiles:
- name: # Nom (doit correspondre à la valeur dans le fichier XML /profile/option[@name='myName']/@value)
url: # URL pour télécharger le profil d'inspection XML
intellij_default_inspection_profile: # Nom (doit correspondre à la valeur dans le fichier XML /profile/option[@name='myName']/@value)
intellij_plugins:
- # ID du plugin à installer
# Édition Ultimate seulement : emplacement de la clé de licence IntelliJ sur le maître Ansible.
# Votre clé de licence peut être trouvée à ~/.IntelliJIdea2017.1/config/idea.key
intellij_license_key_path: # par exemple, '/vagrant/idea.key'
Avertissement : la fonctionnalité d'installation de plugins supplémentaires repose sur des API internes d'IntelliJ IDEA et doit être considérée comme expérimentale à ce stade.
Versions d'IntelliJ IDEA Supportées
Les versions suivantes d'IntelliJ IDEA sont supportées sans configuration supplémentaire (pour d'autres versions, suivez les instructions de configuration avancée) :
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
Configuration Avancée
La variable de rôle suivante dépend de la version d'IntelliJ IDEA ; pour utiliser une version d'IntelliJ IDEA non pré-configurée par ce rôle, vous devez configurer la variable ci-dessous :
# Somme SHA256 pour le package redistribuable
# c'est-à-dire ideaIC-{{ intellij_version }}.tar.gz pour l'édition Community
# ou ideaIU-{{ intellij_version }}.tar.gz pour l'édition Ultimate
intellij_redis_sha256sum: d1cd3f9fd650c00ba85181da6d66b4b80b8e48ce5f4f15b5f4dc67453e96a179
IDs de Plugin IntelliJ
Vous pouvez obtenir une liste des IDs de plugins, pour les plugins IntelliJ disponibles à installer, en suivant la procédure suivante :
Téléchargez le XML des plugins disponibles
Ouvrez IntelliJ et cliquez sur :
Fichier > Paramètres > Plugins > Parcourir les dépôts...
Cela enregistrera automatiquement le fichier XML des plugins disponibles sous :
~/<répertoire utilisateur d'intelliJ>/config/plugins/availables.xml
.Installez XmlStarlet
Installez XmlStarlet en utilisant le gestionnaire de paquets standard pour votre distribution
par exemple, exécutez ce qui suit pour Ubuntu :
sudo apt install xmlstarlet
Extraire les Noms de Plugin et les IDs de Plugin
Exécutez ce qui suit dans votre terminal :
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)
Cela produira un affichage en texte brut à deux colonnes avec le Nom du Plugin à gauche et l'ID du Plugin à droite ; la sortie est adaptée à une utilisation avec
grep
.
Exemples de Playbooks
Playbook minimal :
- hosts: servers
roles:
- role: fernandrone.intellij
Playbook avec configuration spécifique à l'utilisateur (JDK par défaut, Maven, plugins désactivés et style de code) :
- 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
Informations sur le Rôle
Ce rôle exporte les faits Ansible suivants pour être utilisés par d'autres rôles :
ansible_local.intellij.general.home
- par exemple
/opt/idea/idea-community-2016.2.2
- par exemple
ansible_local.intellij.general.desktop_filename
- par exemple
jetbrains-idea-ce.desktop
- par exemple
ansible_local.intellij.general.desktop_file
- par exemple
/usr/share/applications/jetbrains-idea-ce.desktop
- par exemple
ansible_local.intellij.general.user_config_dir
- par exemple
.IdeaIC2016.2/config
- par exemple
ansible_local.intellij.general.user_plugins_dir
- par exemple
.IdeaIC2016.2/config/plugins
- par exemple
Autres Rôles de GantSign
Vous pouvez trouver plus de rôles de GantSign sur Ansible Galaxy.
Développement & Tests
Ce projet utilise Molecule pour faciliter le développement et les tests ; le rôle est testé unitairement à l'aide de Testinfra et pytest.
Pour développer ou tester, vous devez avoir installé ce qui suit :
Comme l'installation de tout cela peut être délicate, ce projet inclut Molecule Wrapper. Molecule Wrapper est un script shell qui installe Molecule et ses dépendances (sauf Linux) et exécute ensuite Molecule avec la commande que vous lui passez.
Pour tester ce rôle à l'aide de Molecule Wrapper, exécutez la commande suivante depuis la racine du projet :
./moleculew test
Remarque : certaines des dépendances nécessitent des permissions sudo
pour être installées.
Licence
MIT
Informations sur l'Auteur
John Freeman
GantSign Ltd. Numéro d'entreprise 06109112 (enregistré en Angleterre)
Role for installing the IntelliJ IDEA IDE.
ansible-galaxy install fernandrone.intellij