fernandrone.intellij

Ansibleロール: IntelliJ

テスト Ansible Galaxy ライセンス

IntelliJ IDEA IDE をダウンロード、インストール、設定するためのロールです 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 のソースをインストールする必要があります。
    • Java 9 以上を使用する場合、jmods もインストールする必要があります。

    例: CentOS で OpenJDK 11 を使用する場合は以下が必要です:

    - 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'

# IntelliJ IDEA の再配布用パッケージのダウンロードミラー
# https://github.com/ansible/ansible/issues/11579 のために HTTP を使用
intellij_mirror: 'http://download.jetbrains.com/idea'

# インストールするエディション (community または ultimate)
intellij_edition: community

# すでにインストールされている場合、IntelliJ IDEA のインストールをスキップするために 'false' に設定
intellij_force: true

# IntelliJ IDEA のインストールディレクトリ
intellij_install_dir: /opt/idea/idea-{{ intellij_edition }}-{{ intellij_version }}

# IntelliJ IDEA プロジェクトのためのデフォルトの Apache Maven インストール場所
# ansible_local.maven.general.home の値がデフォルト(gantsign.maven ロールを参照)
intellij_default_maven_home: '{{ ((((ansible_local | default(dict())).maven | default(dict())).general | default(dict())).home | default(None)) }}'

# IntelliJ IDEA プラグインマネージャーの web サービスの URL
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 のホームパス
    # 新しいプロジェクトのデフォルトとしたい 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: # コードスタイルの XML をダウンロードするための URL
    intellij_default_codestyle: # 名前(XML ファイル内の /code_scheme/@name に一致する必要があります)
    intellij_inspection_profiles:
      - name: # 名前(XML ファイル内の /profile/option[@name='myName']/@value に一致する必要があります)
        url: # 検査プロファイル XML をダウンロードするための URL
    intellij_default_inspection_profile: # 名前(XML ファイル内の /profile/option[@name='myName']/@value に一致する必要があります)
    intellij_plugins:
      - # インストールするプラグインの ID
    # アルティメットエディションのみ: Ansible マスター上の IntelliJ ライセンスキーの場所。
    # ライセンスキーは ~/.IntelliJIdea2017.1/config/idea.key にあります
    intellij_license_key_path: # 例: '/vagrant/idea.key'

警告: 追加プラグインのインストール機能は内部の IntelliJ IDEA API に依存しており、現在は実験的なものと考えてください。

サポートされている 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 ハッシュ
# コミュニティエディションの場合は ideaIC-{{ intellij_version }}.tar.gz
# アルティメットエディションの場合は ideaIU-{{ intellij_version }}.tar.gz
intellij_redis_sha256sum: d1cd3f9fd650c00ba85181da6d66b4b80b8e48ce5f4f15b5f4dc67453e96a179

IntelliJ プラグイン ID

インストールできる IntelliJ プラグインのプラグイン ID のリストは、以下の手順で取得できます:

  1. 利用可能なプラグイン XML をダウンロードします

    IntelliJ を開き、次の操作を行います:

    ファイル > 設定 > プラグイン > リポジトリをブラウズ...
    

    これにより、利用可能なプラグイン XML ファイルが自動的に以下に保存されます:

    ~/<intellij ユーザーディレクトリ>/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 が表示された2列のプレーンテキストが生成されます。出力は 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で見つけることができます。

開発とテスト

このプロジェクトは、開発とテストを助けるためにモレキュールを使用しています。このロールは、TestinfraTestを使用して単体テストされています。

開発またはテストを行うには、以下をインストールしている必要があります:

上記のインストールは難しい場合があるため、このプロジェクトには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.intellij
ライセンス
mit
ダウンロード
97
所有者
YAML Engineer. Likes Go.