intellij

Ansible Роль: IntelliJ

Тесты Ansible Galaxy Лицензия

Роль для загрузки, установки и настройки IDE IntelliJ IDEA https://www.jetbrains.com/idea.

Хотя эта роль может устанавливать плагины IntelliJ, если вы хотите условно устанавливать определенные плагины, взгляните на нашу сопутствующую роль: fernandrone.intellij-plugins.

Требования

  • Ansible >= 2.8

  • Linux Дистрибуция

    • Семья Debian

      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
    • Семья RedHat

      • Rocky Linux

        • 8
    • macOS (Intel или M1)

    • Примечание: другие версии могут работать, но не были протестированы.

  • Java JDK

    • Вам нужно установить JDK, а также JDK src.
    • При использовании Java > 9 вам также нужно установить jmods.

    Например, необходимо следующее, если используется OpenJDK 11 с CentOS:

    - name: Установить OpenJDK 11
      become: true
      yum:
        name:
          - java-11-openjdk-devel
          - java-11-openjdk-jmods
          - java-11-openjdk-src
        state: present
    
  • Apache Maven

Переменные Роли

Следующие переменные изменят поведение этой роли (значения по умолчанию показаны ниже):

# Номер версии IntelliJ IDEA
intellij_version: '2021.2.3'

# Зеркало для загрузки расп distribución пакета IntelliJ IDEA
# Используется HTTP из-за https://github.com/ansible/ansible/issues/11579
intellij_mirror: 'http://download.jetbrains.com/idea'

# Издание для установки (community или ultimate)
intellij_edition: community

# Установите значение 'false', чтобы пропустить установку Intellij IDEA в случае, если она уже установлена
# (даже если версия отличается от запрашиваемой)
intellij_force: true

# Основной каталог установки для любого распространения IntelliJ IDEA
intellij_install_dir: /opt/idea/idea-{{ intellij_edition }}-{{ intellij_version }}

# Расположение по умолчанию для установки Apache Maven для проектов IntelliJ IDEA
# По умолчанию значение ansible_local.maven.general.home (см. роль gantsign.maven)
intellij_default_maven_home: '{{ ((((ansible_local | default(dict())).maven | default(dict())).general | default(dict())).home | default(None)) }}'

# URL для веб-сервиса менеджера плагинов IntelliJ IDEA
intellij_plugin_manager_url: 'https://plugins.jetbrains.com/pluginManager/'

# Список пользователей для настройки IntelliJ IDEA
users: []

# Каталог для хранения файлов, загружаемых для установки IntelliJ IDEA
intellij_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '~/.ansible/tmp/downloads') }}"

# Тайм-аут для ответа на загрузку IntelliJ IDEA в секундах
intellij_idea_download_timeout_seconds: 600

Пользователи настраиваются следующим образом:

users:
  - username: # Имя Unix пользователя
    intellij_group: # Unix группа для файлов/каталогов пользователя (необязательно - по умолчанию равно имени пользователя)
    intellij_jdks:
      - name: # Имя для использования этого JDK
        home: # Путь к JDK home.
    # Имя JDK, которое вы хотите использовать по умолчанию для новых проектов.
    # Обязательно, если вы указали `intellij_jdks`.
    # Должно совпадать с именем одной из `intellij_jdks`.
    intellij_default_jdk:
    intellij_disabled_plugins: # см. ~/.*Idea*/config/disabled_plugins.txt
      - # ID плагина
    intellij_codestyles:
      - name: # Имя (должно совпадать со значением в XML файле /code_scheme/@name)
        url: # URL для загрузки XML код стилей
    intellij_default_codestyle: # Имя (должно совпадать со значением в XML файле /code_scheme/@name)
    intellij_inspection_profiles:
      - name: # Имя (должно совпадать со значением в XML файле /profile/option[@name='myName']/@value)
        url: # URL для загрузки XML профиля инспекции
    intellij_default_inspection_profile: # Имя (должно совпадать со значением в XML файле /profile/option[@name='myName']/@value)
    intellij_plugins:
      - # ID плагина для установки
    # Только для версии Ultimate: местоположение лицензионного ключа IntelliJ на мастер-узле Ansible.
    # Ваш лицензионный ключ можно найти в ~/.IntelliJIdea2017.1/config/idea.key
    intellij_license_key_path: # например, '/vagrant/idea.key'

Предупреждение: функция для установки дополнительных плагинов основана на внутренних API IntelliJ IDEA и в настоящее время рассматривается как экспериментальная.

Поддерживаемые версии IntelliJ IDEA

Следующие версии IntelliJ IDEA поддерживаются без дополнительной конфигурации (для других версий следуйте инструкциям по Продвинутой Конфигурации):

  • 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

Продвинутая Конфигурация

Следующая переменная роли зависит от версии IntelliJ IDEA; для использования версии IntelliJ IDEA, не предварительно настроенной этой ролью, необходимо настроить переменную ниже:

# SHA256-сумма для расп distribu пакет
# т.е. ideaIC-{{ intellij_version }}.tar.gz для версии Community
# или ideaIU-{{ intellij_version }}.tar.gz для версии Ultimate
intellij_redis_sha256sum: d1cd3f9fd650c00ba85181da6d66b4b80b8e48ce5f4f15b5f4dc67453e96a179

ID плагинов IntelliJ

Вы можете получить список ID плагинов для плагинов IntelliJ, которые доступны для установки, используя следующую процедуру:

  1. Загрузите доступный XML плагинов

    Откройте IntelliJ и нажмите на:

    File > Settings > Plugins > Browse repositories...
    

    Это автоматически сохранит файл XML доступных плагинов под:

    ~/<intellij user dir>/config/plugins/availables.xml.

  2. Установите XmlStarlet

    Установите XmlStarlet с помощью стандартного пакетного менеджера для вашей дистрибуции

    например, выполните следующее для Ubuntu:

    sudo apt install xmlstarlet
    
  3. Извлеките названия плагинов и ID плагинов

    Запустите следующее в своем терминале:

    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)
    

    Это создаст макет из двух колонок с названием плагина слева и ID плагина справа; вывод подходит для использования с grep.

Примеры Плейбуков

Минимальный плейбук:

- hosts: servers
  roles:
    - role: fernandrone.intellij

Плейбук с конфигурацией для пользователя (по умолчанию JDK, Maven, отключенные плагины и стиль кода):

- 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

Факты Роли

Эта роль экспортирует следующие факты Ansible для использования другими ролями:

  • ansible_local.intellij.general.home

    • например, /opt/idea/idea-community-2016.2.2
  • ansible_local.intellij.general.desktop_filename

    • например, jetbrains-idea-ce.desktop
  • ansible_local.intellij.general.desktop_file

    • например, /usr/share/applications/jetbrains-idea-ce.desktop
  • ansible_local.intellij.general.user_config_dir

    • например, .IdeaIC2016.2/config
  • ansible_local.intellij.general.user_plugins_dir

    • например, .IdeaIC2016.2/config/plugins

Другие Роли от GantSign

Вы можете найти другие роли от GantSign на Ansible Galaxy.

Разработка и Тестирование

Этот проект использует Molecule для помощи в разработке и тестировании; роль проходит юнит-тестирование с использованием Testinfra и pytest.

Чтобы разрабатывать или тестировать, вам нужно установить следующее:

Поскольку установка вышеуказанного может быть сложной, этот проект включает Molecule Wrapper. Molecule Wrapper - это оболочка, которая устанавливает Molecule и его зависимости (кроме Linux) и затем выполняет Molecule с командой, которую вы передаете.

Чтобы протестировать эту роль с помощью Molecule Wrapper, выполните следующую команду из корня проекта:

./moleculew test

Примечание: некоторые зависимости требуют разрешения sudo для установки.

Лицензия

MIT

Информация об Авторе

Джон Фриман

GantSign Ltd. Компания № 06109112 (зарегистрирована в Англии)

О проекте

Role for installing the IntelliJ IDEA IDE.

Установить
ansible-galaxy install fernandrone/ansible-role-intellij
Лицензия
mit
Загрузки
83
Владелец
YAML Engineer. Likes Go.