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コレクションに依存しています。コレクションとそのソースへのリンクは以下の通りです。

  • chocolatey.chocolatey Ansible Galaxyバッジ
  • community.general Ansible Galaxyバッジ
  • google.cloud Ansible Galaxyバッジ

例のプレイブック

依存関係がインストールされたら、ロールをメインのプレイブックに追加するだけです。ロールはbecomeの動作を処理するので、ルートとして実行すべきコマンドを気にせずにプレイブックにロールを追加できます:

- hosts: all
  roles:
    - professormanhattan.java

このロールを既存のプレイブックに組み込む場合、将来の利用時に1セットの要件だけをインストールすればよいように、pyproject.tomlrequirements.ymlで定義された要件をプレイブックのルートにある対応するファイルにコピーすることをお勧めします。pyproject.toml内の依存関係は、現在使用しているPython依存関係を追跡するためのより伝統的なrequirements.txtに移動可能です。

実世界の例

このロールを組み込んだプレイブックの例は、私たちのメインプレイブック(いわゆるガスステーション)にあります。このプレイブックは、Ansibleを使う方法を学んでいる人にとってすばらしい例です。また、高度なAnsibleユーザーが評価できるよく考えられたビルドツールも多数組み込まれています。Ansibleに興味がない人も、コンピュータ(およびネットワーク)を究極の開発環境に変えることができるため、恩恵を受けることができます。重要なのは、開発者が知っておくべき素晴らしいプロジェクトであるということです!

貢献

貢献、問題、機能リクエストは大歓迎です!問題ページを確認してください。貢献したい場合は、貢献ガイドを確認してください。

スポンサーシップ

素晴らしい人へ、

私は愛情からオープンソースプロジェクトを作成しています。仕事、住まい、そして食べられるファストフードは得ていますが、それでも私が多くの時間とお金をかけた何かについてコミュニティから評価されるのはとても嬉しいことです。ぜひ、私をスポンサーしてください!誰が知っているでしょう?私が仕事を辞めてオープンソースをフルタイムで発表できるかもしれません。

敬具,

ブライアン・ザレフスキー

Open Collectiveスポンサー GitHubスポンサー Patreon

関係者

以下は、特別なリンクからサービスに登録することに対して特別なインセンティブを提供するサービスのリストです。

MailChimp DigitalOceanリファラルバッジ

ライセンス

Copyright © 2020-2021 Megabyte LLC。このプロジェクトはMITライセンスです。

インストール
ansible-galaxy install megabyte-labs.java
ライセンス
other
ダウンロード
940
所有者
Free open-source developer tools for managing massive amounts of code