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

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

例のプレイブック

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

- hosts: all
  roles:
    - professormanhattan.java

このロールを既存のプレイブックに組み込む場合、 pyproject.tomlrequirements.yml に記載されている依存関係をプレイブックのルートにある対応するファイルにコピーするのが賢明かもしれません。これにより、将来の利用時に1回のインストールで全ての依存関係をインストールすることができます。なお、 pyproject.toml の依存関係は、現在Pythonの依存関係を追跡するために使用している requirements.txt に移すことができます。

実際の例

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

貢献

貢献、問題、機能リクエストは歓迎します!問題ページをチェックしてください。貢献したい場合は、貢献ガイドをご覧ください。

スポンサーシップ

素晴らしい人へ、

私は愛からオープンソースのプロジェクトを作成しています。仕事、住まい、できる限りのファーストフードを得ていますが、コミュニティからの感謝を感じることはとても素晴らしいことです。ぜひ私をサポートしてみてください!もしかしたら、仕事を辞めてオープンソースをフルタイムで発表できるかもしれません。

心を込めて、

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

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

アフィリエイト

以下は、特別なリンクを通じてサービスにサインアップすることで特典を提供しているサービスのリストです:

MailChimp DigitalOcean リファラルバッジ

ライセンス

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

インストール
ansible-galaxy install professormanhattan.java
ライセンス
other
ダウンロード
1.2k
所有者
Often imitated, never duplicated