professormanhattan.homebrew

<!-- ⚠️ このREADMEはファイル".config/docs/blueprint-readme-role.md"から生成されています ⚠️-->
<div align="center">
  <center>
    <a href="https://github.com/megabyte-labs/ansible-homebrew">
      <img width="148" height="148" alt="Homebrewロゴ" src="https://gitlab.com/megabyte-labs/ansible-roles/homebrew/-/raw/master/logo.png" />
    </a>
  </center>
</div>
<div align="center">
  <center><h1 align="center"><i></i>Homebrew - macOS/Linux用のパッケージマネージャー<i></i></h1></center>
  <center><h4 style="color: #18c3d1;">制作: <a href="https://megabyte.space" target="_blank">Megabyte Labs</a></h4><i></i></center>
</div>

<div align="center">
  <a href="https://megabyte.space" title="Megabyte Labsホームページ" target="_blank">
    <img alt="ホームページ" src="https://img.shields.io/website?down_color=%23FF4136&down_message=ダウン&label=ホームページ&logo=home-assistant&logoColor=white&up_color=%232ECC40&up_message=アップ&url=https%3A%2F%2Fmegabyte.space&style=for-the-badge" />
  </a>
  <a href="https://github.com/megabyte-labs/ansible-homebrew/blob/master/docs/CONTRIBUTING.md" title="貢献について学ぶ" target="_blank">
    <img alt="貢献" src="https://img.shields.io/badge/貢献-ガイド-0074D9?logo=github-sponsors&logoColor=white&style=for-the-badge" />
  </a>
  <a href="https://app.slack.com/client/T01ABCG4NK1/C01NN74H0LW/details/" title="Slackで私たちとチャット" target="_blank">
    <img alt="Slack" src="https://img.shields.io/badge/Slack-チャット-e01e5a?logo=slack&logoColor=white&style=for-the-badge" />
  </a>
  <a href="https://gitter.im/megabyte-labs/community" title="Gitterでコミュニティとチャット" target="_blank">
    <img alt="Gitter" src="https://img.shields.io/gitter/room/megabyte-labs/community?logo=gitter&logoColor=white&style=for-the-badge" />
  </a>
  <a href="https://github.com/megabyte-labs/ansible-homebrew" title="GitHubミラー" target="_blank">
    <img alt="GitHub" src="https://img.shields.io/badge/ミラー-GitHub-333333?logo=github&style=for-the-badge" />
  </a>
  <a href="https://gitlab.com/megabyte-labs/ansible-roles/homebrew" title="GitLabリポジトリ" target="_blank">
    <img alt="GitLab" src="https://img.shields.io/badge/リポジトリ-GitLab-fc6d26?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAHJJREFUCNdNxKENwzAQQNEfWU1ZPUF1cxR5lYxQqQMkLEsUdIxCM7PMkMgLGB6wopxkYvAeI0xdHkqXgCLL0Beiqy2CmUIdeYs+WioqVF9C6/RlZvblRNZD8etRuKe843KKkBPw2azX13r+rdvPctEaFi4NVzAN2FhJMQAAAABJRU5ErkJggg==&style=for-the-badge" />
  </a>
</div>
<br/>
<div align="center">
  <a title="Ansible Galaxyロール: professormanhattan.homebrew" href="https://galaxy.ansible.com/professormanhattan/homebrew" target="_blank">
    <img alt="Ansible Galaxyロール: professormanhattan.homebrew" src="https://img.shields.io/ansible/role/57302?logo=ansible&style=flat-square" />
  </a>
  <a title="バージョン: 1.0.0" href="https://github.com/megabyte-labs/ansible-homebrew" target="_blank">
    <img alt="バージョン: 1.0.0" src="https://img.shields.io/badge/version-1.0.0-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAACNJREFUCNdjIACY//+BEp9hhM3hAzYQwoBIAqEDYQrCZLwAAGlFKxU1nF9cAAAAAElFTkSuQmCC&cacheSeconds=2592000&style=flat-square" />
  </a>
  <a title="GitLabビルドステータス" href="https://gitlab.com/megabyte-labs/ansible-roles/homebrew/-/commits/master" target="_blank">
    <img alt="ビルドステータス" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/homebrew?branch=master&label=ビルド&logo=gitlab&logoColor=white&style=flat-square" />
  </a>
  <a title="Windows 11テストステータス on GitHub" href="https://github.com/megabyte-labs/ansible-homebrew/actions/workflows/Windows.yml" target="_blank">
    <img alt="Windows 11テストステータス" src="https://img.shields.io/github/workflow/status/ProfessorManhattan/ansible-homebrew/Windows%20Ansible%20Role%20Test/master?color=cyan&label=windows&logo=windows&style=flat-square" />
  </a>
  <a title="macOSテストステータス on GitLab" href="https://gitlab.com/megabyte-labs/ansible-roles/homebrew/-/commits/master" target="_blank">
    <img alt="macOSテストステータス" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/homebrew?branch=test%2Fdarwin&label=osx&logo=apple&style=flat-square" />
  </a>
  <a title="Linuxモレキュールテストステータス on GitLab" href="https://gitlab.com/megabyte-labs/ansible-roles/homebrew/-/commits/master" target="_blank">
    <img alt="Linuxモレキュールテストステータス" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/homebrew?branch=test%2Flinux&label=linux&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAElBMVEUAAAAwPEEuOEIxOzswPj7///91+pI+AAAABXRSTlMANRkNJejDPNcAAAB+SURBVCjPddHBDYAgDIXhGtMRHMG7S3hvTP79VxFIQVq1wOVLm7wU8QIJpSThC2wGwwJoPQFKRdiAAIhGsAykZNSZAOVNMx4BMjwtpySgr6CDJdB/MAdJwAvSiFoE5aABHUb0ch0WHNQq+KPAOgCgrbEnbjAHArjGz3jr3hpumrQpvwi66rkAAAAASUVORK5CYII=&style=flat-square" />
  </a>
  <a title="Ansible Galaxy品質スコア(5点満点)" href="https://galaxy.ansible.com/professormanhattan/homebrew" target="_blank">
    <img alt="Ansible Galaxy品質スコア" src="https://img.shields.io/ansible/quality/57302?logo=ansible&style=flat-square" />
  </a>
  <a title="Ansible Galaxyダウンロード数" href="https://galaxy.ansible.com/professormanhattan/homebrew" target="_blank">
    <img alt="Ansible Galaxyダウンロード数" src="https://img.shields.io/ansible/role/d/57302?logo=ansible&label=ダウンロード&style=flat-square" />
  </a>
  <a title="ドキュメンテーション" href="https://megabyte.space/docs/ansible" target="_blank">
    <img alt="ドキュメンテーション" src="https://img.shields.io/badge/documentation-はい-brightgreen.svg?logo=readthedocs&logoColor=white&style=flat-square" />
  </a>
  <a title="ライセンス: MIT" href="https://github.com/megabyte-labs/ansible-homebrew/blob/master/LICENSE" target="_blank">
    <img alt="ライセンス: MIT" src="https://img.shields.io/badge/license-MIT-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAHpJREFUCNdjYOD/wMDAUP+PgYHxhzwDA/MB5gMM7AwMDxj4GBgKGGQYGCyAEEgbMDDwAAWAwmk8958xpIOI5zKH2RmOyhxmZjguAiKmgIgtQOIYmFgCIp4AlaQ9OczGkJYCJEAGgI0CGwo2HmwR2Eqw5SBnNIAdBHYaAJb6KLM15W/CAAAAAElFTkSuQmCC&style=flat-square" />
  </a>
</div>

> <br/><h4 align="center">**macOSおよびLinuxシステムにHomebrew(パッケージ管理システム)をインストールするAnsibleロール**</h4><br/>

<a href="#table-of-contents" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## 目次

- [概要](#overview)
- [特徴](#features)
- [クイックスタート](#quick-start)
- [対応オペレーティングシステム](#supported-operating-systems)
- [依存関係](#dependencies)
  - [Python](#python)
  - [Galaxyロール](#galaxy-roles)
  - [Galaxyコレクション](#galaxy-collections)
- [例のプレイブック](#example-playbook)
  - [実世界の例](#real-world-example)
- [貢献](#contributing)
  - [関連サービス](#affiliates)
- [ライセンス](#license)

<a href="#overview" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## 概要

このリポジトリは、macOSおよびLinuxシステムにHomebrew(パッケージ管理システム)をインストールする[Ansible](https://www.ansible.com/) ロールのホームです。[Homebrew](https://brew.sh/)は、AppleのオペレーティングシステムmacOSおよびLinux上でのソフトウェアインストールを簡素化するための無料でオープンソースのソフトウェアパッケージ管理システムです。その名前は、ユーザーの好みに応じてMac上でソフトウェアをビルドするというアイデアを示すことを意図しています。

<a href="#features" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## 特徴

**Homebrewがインストールされていることを確認する:**

- Homebrewがすでにインストールされていないか確認
- macOSおよびLinuxにHomebrewをインストール
- `.bashrc`ファイルが正しくHomebrewを`PATH`変数に追加していることを確認

**Homebrewパッケージをインストールする:**

- HomebrewおよびHomebrewパッケージを最新の状態に保つ
- Homebrewパッケージの設定可能なリストをインストール(`homebrew_packages`変数を介して)
- 事前インストールされたHomebrewカスクが最新であることを確認
- macOSに設定可能なHomebrewカスクのリストをインストール(`homebrew_casks`変数を介して)

<a href="#quick-start" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>

## クイックスタート

[Ansible](https://www.ansible.com/)を使わずにHomebrewをインストールしたいですか?お使いのオペレーティングシステムに関連した以下のコマンドを実行してください:

**Linux/macOS:**

```shell
curl -sS https://install.doctor/homebrew | 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/homebrew?os=win'))

重要な注意: 上記のコマンドを実行する前に、URLに直接アクセスしてコードが正当なものであることを確認するべきです。私たちはすでにそれが安全であることを知っていますが、コンピュータでスクリプトを実行する前に、内容を確認することが重要です。

また、**Install Doctor**をチェックすることもできます。これは、1行のコマンドで任意のAnsibleロールをインストールできるアプリです。他にも便利な機能があり、パスワードなしでバイナリをその場でインストールできます。ただし、このロールをAnsibleプレイブックに組み込み(設定をカスタマイズ)たい場合は、以下をお読みください。

対応オペレーティングシステム

以下のチャートは、このロールをテストしたオペレーティングシステムを示しています。これは、molecule/フォルダにあるAnsible Moleculeテストを使用して自動生成されたものです。Windows、macOS、Ubuntu、Fedora、CentOS、Debian、およびArchlinuxのテストを自動で処理するCIロジックがあります。リストにないオペレーティングシステムでも、私たちがテストしたシステムの派生バージョンの場合は、ロールが機能する可能性があります。

OSファミリー OSバージョン ステータス 冪等性 テスト日
ArchLinux 最新版
2022年1月7日
CentOS 7
2022年1月7日
CentOS 8
2022年1月7日
CentOS Stream 8
2022年1月7日
Debian 10 (Buster)
2022年1月7日
Debian 11 (Bullseye)
2022年1月7日
Debian 9 (Stretch)
2022年1月7日
Fedora 33
2022年1月7日
Fedora 34
2022年1月7日
Fedora 35
2022年1月7日
Ubuntu 18.04 (Bionic Beaver)
2022年1月7日
Ubuntu 20.04 (Focal Fossa)
2022年1月7日
Ubuntu 21.04 (Hirsute Hippo)
2022年1月7日
Ubuntu 21.10 (Impish Indri)
2022年1月7日
Windows 10
2022年1月7日

冪等性とは? 冪等性とは、このロールを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ロール内のYAMLファイルのコメントに基づいてドキュメントを自動生成するカスタムフォークのansible-autodoc
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のロール依存関係、ヘルパーロール、コレクションなど)の完全なリストが含まれています。便利なようにロール依存関係のリストと簡単な説明を以下に示します。

role_dependencies

Galaxyコレクション

このロールは、複数のAnsible Galaxyコレクションに依存しています。以下にコレクションとそのソースへのリンクをリストします。

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

例のプレイブック

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

- hosts: all
  roles:
    - professormanhattan.homebrew

このロールを既存のプレイブックに組み込む場合、pyproject.tomlrequirements.ymlに記載されている要件を、プレイブックのルートにある対応するファイルにコピーすることが賢明かもしれません。そうすることで、今後の利用時に一つの要件セットだけをインストールすれば良くなります。pyproject.tomlの依存関係は、現在使用しているPython依存関係を追跡するためのより伝統的なrequirements.txtに移動できます。

実世界の例

このロールを組み込んだプレイブックの例は、私たちのメインプレイブック(別名ガススタンド)で見つけることができます。このプレイブックは、Ansibleを学ぶ人にとって優れた例です。また、より高度なAnsibleユーザーが評価できる多くの良く考えられたビルドツールも組み込んでいます。Ansibleにまったく関心がない人にとっても、それはコンピュータ(およびネットワーク)を究極の開発環境に変える手助けとなります。要するに、これは開発者が知っておくべき素晴らしいプロジェクトです!

貢献

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

スポンサーシップ

親愛なる素晴らしい人へ、

私は愛からオープンソースプロジェクトを作成しています。仕事、住居、そしてファストフードを存分に楽しんでいるものの、私が多くの時間と金をかけて取り組んだ何かに対してコミュニティから感謝されるのは素晴らしいことです。スポンサーになってくれることをご検討ください!もしかしたら、仕事を辞めてオープンソースをフルタイムで公開できるかもしれません。

心を込めて、

ブライアン・ザルewski

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

関連サービス

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

MailChimp DigitalOceanリファラルバッジ

ライセンス

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

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