megabyte-labs.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**をチェックすることもできます。これは、任意のAnsibleロールを一行でインストールできるアプリです。他にもパスワードなしでバイナリをインストールする機能など、便利な機能がいくつかあります。しかし、このロールをAnsibleプレイブックに組み込み(設定をカスタマイズ)たい場合は、以下をお読みください。
サポートされているオペレーティングシステム
以下のチャートは、私たちがこのロールをテストしたオペレーティングシステムを示しています。これは、自動的に生成されており、molecule/
フォルダにあるAnsible Moleculeテストを使用しています。Windows、macOS、Ubuntu、Fedora、CentOS、Debian、Archlinuxのテストを自動的に処理するCIロジックがあります。リストにないオペレーティングシステムがあっても、それがテストしたシステムのバリアント(例えば、Debian系のシステムやRedHat系のシステム)である場合、ロールが機能する可能性があります。
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ロールの依存関係が実行されます。これらの依存関係は、プレイブックごとに一度だけ実行されるように設定されています。プレイブックに、共通の依存関係を持つ複数のロールを含める場合、依存関係のインストールは最初の実行後にスキップされます。また、私たちのロールのいくつかは、タスクファイルから直接ヘルパーロールを利用しており、私たちのメインプレイブック(ガスステーション)をDRYに保っています。
requirements.yml
ファイルには、このロールに必要なAnsible Galaxyの依存関係の完全なリストが含まれています(meta/main.yml
ロール依存関係、ヘルパーロール、コレクションなど)。便利のために、依存関係のリストと簡単な説明を以下に示します:
ロール依存関係
Galaxyコレクション
このロールは複数のAnsible Galaxyコレクションに依存しています。コレクションとそのソースへのリンクは以下の通りです。
例のプレイブック
依存関係がインストールされたら、ロールをメインのプレイブックに追加するだけです。ロールはbecome
の動作を処理するので、ルートとして実行すべきコマンドを気にせずにプレイブックにロールを追加できます:
- hosts: all
roles:
- professormanhattan.java
このロールを既存のプレイブックに組み込む場合、将来の利用時に1セットの要件だけをインストールすればよいように、pyproject.toml
とrequirements.yml
で定義された要件をプレイブックのルートにある対応するファイルにコピーすることをお勧めします。pyproject.toml
内の依存関係は、現在使用しているPython依存関係を追跡するためのより伝統的なrequirements.txt
に移動可能です。
実世界の例
このロールを組み込んだプレイブックの例は、私たちのメインプレイブック(いわゆるガスステーション)にあります。このプレイブックは、Ansibleを使う方法を学んでいる人にとってすばらしい例です。また、高度なAnsibleユーザーが評価できるよく考えられたビルドツールも多数組み込まれています。Ansibleに興味がない人も、コンピュータ(およびネットワーク)を究極の開発環境に変えることができるため、恩恵を受けることができます。重要なのは、開発者が知っておくべき素晴らしいプロジェクトであるということです!
貢献
貢献、問題、機能リクエストは大歓迎です!問題ページを確認してください。貢献したい場合は、貢献ガイドを確認してください。
スポンサーシップ
素晴らしい人へ、
私は愛情からオープンソースプロジェクトを作成しています。仕事、住まい、そして食べられるファストフードは得ていますが、それでも私が多くの時間とお金をかけた何かについてコミュニティから評価されるのはとても嬉しいことです。ぜひ、私をスポンサーしてください!誰が知っているでしょう?私が仕事を辞めてオープンソースをフルタイムで発表できるかもしれません。
敬具,
ブライアン・ザレフスキー
関係者
以下は、特別なリンクからサービスに登録することに対して特別なインセンティブを提供するサービスのリストです。

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