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コレクションに依存しています。以下にコレクションとそのソースへのリンクをリストします。
例のプレイブック
依存関係がインストールされたら、あなたのメインプレイブックにロールを追加するだけで済みます。このロールはbecome
動作を処理するので、ルートユーザーとして実行してはいけないコマンドを気にすることなく、プレイブックにロールを追加できます:
- hosts: all
roles:
- professormanhattan.homebrew
このロールを既存のプレイブックに組み込む場合、pyproject.toml
とrequirements.yml
に記載されている要件を、プレイブックのルートにある対応するファイルにコピーすることが賢明かもしれません。そうすることで、今後の利用時に一つの要件セットだけをインストールすれば良くなります。pyproject.toml
の依存関係は、現在使用しているPython依存関係を追跡するためのより伝統的なrequirements.txt
に移動できます。
実世界の例
このロールを組み込んだプレイブックの例は、私たちのメインプレイブック(別名ガススタンド)で見つけることができます。このプレイブックは、Ansibleを学ぶ人にとって優れた例です。また、より高度なAnsibleユーザーが評価できる多くの良く考えられたビルドツールも組み込んでいます。Ansibleにまったく関心がない人にとっても、それはコンピュータ(およびネットワーク)を究極の開発環境に変える手助けとなります。要するに、これは開発者が知っておくべき素晴らしいプロジェクトです!
貢献
貢献、問題、機能リクエストは大歓迎です!ぜひ問題ページをチェックしてください。貢献したい場合は、貢献ガイドを確認してください。
スポンサーシップ
親愛なる素晴らしい人へ、
私は愛からオープンソースプロジェクトを作成しています。仕事、住居、そしてファストフードを存分に楽しんでいるものの、私が多くの時間と金をかけて取り組んだ何かに対してコミュニティから感謝されるのは素晴らしいことです。スポンサーになってくれることをご検討ください!もしかしたら、仕事を辞めてオープンソースをフルタイムで公開できるかもしれません。
心を込めて、
ブライアン・ザルewski
関連サービス
以下は、特別なリンクを介してサービスにサインアップすることで特典を提供するサービスのリストです:

ライセンス
著作権 © 2020-2021 Megabyte LLC。このプロジェクトはMITライセンスです。 ```
Installs Homebrew (a package management system) on macOS and Linux systems
ansible-galaxy install professormanhattan.homebrew