professormanhattan.java
Java
作成者 Megabyte Labs
ほとんどのプラットフォームにJavaをインストールするAnsibleロール
目次
概要
このリポジトリは、ほとんどのプラットフォームにJavaをインストールするためのAnsibleロールのホームです。Javaは、実装依存度をできる限り少なくするように設計された、クラスベースのオブジェクト指向プログラミング言語です。
特徴
Javaがインストールされていることを確認します:
- WindowsではChocolateyを使ってJavaをインストール
JAVA_HOME
変数が設定されることを確認- macOS、Linux、WindowsシステムにJavaをインストール
- Javaが
PATH
に追加されることを確認
Windowsの最適化:
- WindowsのスタートメニューからJavaフォルダーを削除
クイックスタート
Ansibleを扱わずにJavaをインストールしたいですか?お使いのオペレーティングシステムに関連する以下のコマンドを実行するだけです:
Linux/macOS:
curl -sS https://install.doctor/java | bash
Windows:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/java?os=win'))
重要な注意:上記のコマンドを実行する前に、URLに直接アクセスしてコードが正当であることを確認してください。私たちは安全であることがわかっていますが、コンピュータでスクリプトを実行する前に、それを調べるべきです。
**Install Doctor**もチェックしてみてください。これは、1行で任意のAnsibleロールをインストールできるアプリです。他にもパスワードなしでバイナリをその場でインストールできる機能などがあります。ただし、このロールをAnsibleプレイブックに組み込んで設定をカスタマイズしたい場合は、以下をお読みください。
サポートされているオペレーティングシステム
以下のチャートは、このロールでテストを行ったオペレーティングシステムを示しています。これは、molecule/
フォルダーにあるAnsible Moleculeテストを使用して自動的に生成されています。Windows、macOS、Ubuntu、Fedora、CentOS、Debian、Archlinuxのテストを自動的に処理するCIロジックが用意されています。リストにないオペレーティングシステムでも、私たちがテストしたシステムのバリエーションであれば、ロールができる可能性があります。
OS ファミリー | OS バージョン | ステータス | 冪等性 | テスト済み |
---|
冪等性とは? 冪等性とは、ロールを連続して2回実行しても、2回目にはシステムに変更がないことを意味します。
私たちはCI構成やビルドツールを完璧にするために多くの時間を費やしました。私たちのプロセスをどのように完璧にしたのかについて詳しく知りたい場合は、共通AnsibleファイルやAnsibleドキュメントリポジトリを興味深く思うかもしれません。詳細についてはCONTRIBUTING.mdガイドをご覧ください。
依存関係
私たちの多くのロールは、Ansible Galaxyコレクションに依存しています。いくつかのプロジェクトは、Ansible Galaxyで公開されている他のロールやコレクションにも依存しています。このロールを実行する前に、依存関係のコレクションとロールをインストールし、Pythonの要件を満たすために以下のコマンドを実行する必要があります。
if type poetry &> /dev/null; then poetry install --no-root; else pip3 install -r .config/assets/requirements.txt; fi
ansible-galaxy install -r requirements.yml
また、Ansibleに不慣れで、開発要件もインストールされることを気にしない場合は、単に bash .config/scripts/start.sh
を実行することができます。これにより、すべてが適切に動作することが保証されます。
Python
標準のマシンでこのプレイを実行するために必要な唯一のツールはAnsible(Pythonパッケージ)ですが、特定のユースケースや開発に必要な他のPython依存関係も含めています。以下の表は、これらのパッケージの詳細を示しています。
パッケージ | 説明 | 必要 |
---|---|---|
ansible | リモートでコンピュータを構成できる構成管理システム | ✔️ |
docker | Ansibleを使用してDockerコンテナをプロビジョニングする機能を提供 | ✔️ |
python-vagrant | Vagrant VMをプロビジョニングするために必要 | ✔️ |
pywinrm | WinRMを使用しているWindowsマシンをプロビジョニングするために必要 | ✔️ |
ansible-lint | Ansibleファイル用のリンティングツール | |
ansibler | 高度なドキュメントを生成するためのカスタムツール(例:互換性チャートやその他のチャートを生成) | |
black | プロジェクトがPythonテストスクリプトを利用する場合に含まれるPythonファイルの自動フォーマッタ | |
blocklint | コードベースに特定の単語が入るのを防ぐリンティングツール | |
flake8 | Pythonの文法とスタイルエラーを報告するPythonリンター | |
mod-ansible-autodoc | ansible-autodocのカスタムフォークで、ロールのYAMLファイルのコメントに基づいて自動的にドキュメントを生成することができます | |
molecule | Ansible用のテストフレームワーク | |
molecule-docker | DockerコンテナをプロビジョニングするためのMoleculeプラグイン | |
molecule-vagrant | Vagrant VMをプロビジョニングするためのMoleculeプラグイン | |
pre-commit-hooks | リンティングに役立つツールのスイート | |
proselint | 英語の改善を生成するために使用されるリンター(ドキュメントを改善するために使用) | |
yamllint | 正しい構文とスタイルが使用されていることを保証するYAMLファイルのリンター |
Galaxyロール
ほとんどのロールには依存関係はありませんが、ロジックを続行する前に別のロールをインストールする必要がある場合もあります。プレイの最初に、 meta/main.yml
に記載されているAnsible Galaxyロールの依存関係が実行されます。これらの依存関係は、プレイブックごとに1回だけ実行されるように設定されています。プレイブックに複数の私たちのロールを含めており、共通の依存関係がある場合、最初の実行後は依存関係のインストールがスキップされます。また、私たちのロールのいくつかは、主なプレイブック(ガスステーション)に直接書き入れたヘルパーロールを使用して、DRYな状態を保っています。
requirements.yml
ファイルには、このロールに必要なAnsible Galaxyの依存関係が記載されています(例: meta/main.yml
のロールの依存関係、ヘルパーロール、コレクションなど)。便利にするために、依存関係のリストを迅速に説明したものは以下に記載されております。
role_dependencies
Galaxyコレクション
このロールは、複数のAnsible Galaxyコレクションに依存しています。コレクションとそのソースへのリンクを以下に示します。
例のプレイブック
依存関係がインストールされると、主なプレイブックにロールを追加するだけで済みます。ロールは become
動作を処理するため、ルートではなく実行すべきでないコマンドを気にせずにプレイブックに追加できます:
- hosts: all
roles:
- professormanhattan.java
このロールを既存のプレイブックに組み込む場合、 pyproject.toml
と requirements.yml
に記載されている依存関係をプレイブックのルートにある対応するファイルにコピーするのが賢明かもしれません。これにより、将来の利用時に1回のインストールで全ての依存関係をインストールすることができます。なお、 pyproject.toml
の依存関係は、現在Pythonの依存関係を追跡するために使用している requirements.txt
に移すことができます。
実際の例
このロールを組み込んだプレイブックの例は、私たちの主なプレイブック(通称ガスステーション)で見つけることができます。このプレイブックは、Ansibleの使い方を学んでいる人にとって素晴らしい例です。また、より高度なAnsibleのユーザーが評価できるような、よく考えられたビルドツールがたくさん組み込まれています。そして、Ansibleにあまり興味がない人々も、このプロジェクトを通じて、コンピュータ(とネットワーク)を究極の開発環境に変えることができるため、利益を得ることができます。要するに、開発者が知っておくべき素晴らしいプロジェクトです!
貢献
貢献、問題、機能リクエストは歓迎します!問題ページをチェックしてください。貢献したい場合は、貢献ガイドをご覧ください。
スポンサーシップ
素晴らしい人へ、
私は愛からオープンソースのプロジェクトを作成しています。仕事、住まい、できる限りのファーストフードを得ていますが、コミュニティからの感謝を感じることはとても素晴らしいことです。ぜひ私をサポートしてみてください!もしかしたら、仕事を辞めてオープンソースをフルタイムで発表できるかもしれません。
心を込めて、
ブライアン・ザレウスキー
アフィリエイト
以下は、特別なリンクを通じてサービスにサインアップすることで特典を提供しているサービスのリストです:

ライセンス
Copyright © 2020-2021 Megabyte LLC。このプロジェクトはMITライセンスです。
Installs Java on almost any platform
ansible-galaxy install professormanhattan.java