megabyte-labs.snapd
<!-- ⚠️ このREADMEは「.config/docs/blueprint-readme-role.md」ファイルから生成されました ⚠️-->
<div align="center">
<center>
<a href="https://github.com/megabyte-labs/ansible-snapd">
<img width="148" height="148" alt="Snap logo" src="https://gitlab.com/megabyte-labs/ansible-roles/snapd/-/raw/master/logo.png" />
</a>
</center>
</div>
<div align="center">
<center><h1 align="center"><i></i>Snap - 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=Down&label=Homepage&logo=home-assistant&logoColor=white&up_color=%232ECC40&up_message=Up&url=https%3A%2F%2Fmegabyte.space&style=for-the-badge" />
</a>
<a href="https://github.com/megabyte-labs/ansible-snapd/blob/master/docs/CONTRIBUTING.md" title="貢献について学ぶ" target="_blank">
<img alt="貢献" src="https://img.shields.io/badge/Contributing-Guide-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-Chat-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-snapd" title="GitHubミラー" target="_blank">
<img alt="GitHub" src="https://img.shields.io/badge/Mirror-GitHub-333333?logo=github&style=for-the-badge" />
</a>
<a href="https://gitlab.com/megabyte-labs/ansible-roles/snapd" title="GitLabリポジトリ" target="_blank">
<img alt="GitLab" src="https://img.shields.io/badge/Repo-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.snapd" href="https://galaxy.ansible.com/professormanhattan/snapd" target="_blank">
<img alt="Ansible Galaxyロール: professormanhattan.snapd" src="https://img.shields.io/ansible/role/56331?logo=ansible&style=flat-square" />
</a>
<a title="バージョン: 0.0.1" href="https://github.com/megabyte-labs/ansible-snapd" target="_blank">
<img alt="バージョン: 0.0.1" src="https://img.shields.io/badge/version-0.0.1-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/snapd/-/commits/master" target="_blank">
<img alt="ビルドステータス" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/snapd?branch=master&label=build&logo=gitlab&logoColor=white&style=flat-square" />
</a>
<a title="Windows 11テストステータス (GitHub)" href="https://github.com/megabyte-labs/ansible-snapd/actions/workflows/Windows.yml" target="_blank">
<img alt="Windows 11テストステータス" src="https://img.shields.io/github/workflow/status/ProfessorManhattan/ansible-snapd/Windows%20Ansible%20Role%20Test/master?color=cyan&label=windows&logo=windows&style=flat-square" />
</a>
<a title="macOSテストステータス (GitLab)" href="https://gitlab.com/megabyte-labs/ansible-roles/snapd/-/commits/master" target="_blank">
<img alt="macOSテストステータス" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/snapd?branch=test%2Fdarwin&label=osx&logo=apple&style=flat-square" />
</a>
<a title="Linux Moleculeテストステータス (GitLab)" href="https://gitlab.com/megabyte-labs/ansible-roles/snapd/-/commits/master" target="_blank">
<img alt="Linux Moleculeテストステータス" src="https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/snapd?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/snapd" target="_blank">
<img alt="Ansible Galaxyの品質スコア" src="https://img.shields.io/ansible/quality/56331?logo=ansible&style=flat-square" />
</a>
<a title="Ansible Galaxyのダウンロード数" href="https://galaxy.ansible.com/professormanhattan/snapd" target="_blank">
<img alt="Ansible Galaxyのダウンロード数" src="https://img.shields.io/ansible/role/d/56331?logo=ansible&label=downloads&style=flat-square" />
</a>
<a title="ドキュメント" href="https://megabyte.space/docs/ansible" target="_blank">
<img alt="ドキュメント" src="https://img.shields.io/badge/documentation-yes-brightgreen.svg?logo=readthedocs&logoColor=white&style=flat-square" />
</a>
<a title="ライセンス: MIT" href="https://github.com/megabyte-labs/ansible-snapd/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">**SnapがLinuxシステムにインストールされ、正しく設定されていることを保証する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>
## 目次
- [概要](#概要)
- [機能](#機能)
- [クイックスタート](#クイックスタート)
- [対応OS](#対応OS)
- [依存関係](#依存関係)
- [Python](#python)
- [Galaxyロール](#galaxy-ロール)
- [Galaxyコレクション](#galaxy-コレクション)
- [例のプレイブック](#例のプレイブック)
- [実際の例](#実際の例)
- [貢献](#貢献)
- [提携](#提携)
- [ライセンス](#ライセンス)
<a href="#overview" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>
## 概要
このリポジトリは、LinuxシステムにSnapがインストールされ、正しく設定されていることを保証する[Ansible](https://www.ansible.com/)ロールのホームです。 [Snap](https://snapcraft.io/)は、CanonicalがLinuxカーネルを使用するオペレーティングシステムのために開発したソフトウェアパッケージとデプロイメントシステムです。 パッケージは「スナップ」と呼ばれ、使用するためのツールは「snapd」で、さまざまなLinuxディストリビューションで動作し、上流のソフトウェア開発者がアプリケーションを直接ユーザーに配布することを可能にします。 スナップは、ホストシステムへの制限されたアクセスを持つサンドボックス内で実行される自己完結型のアプリケーションです。
<a href="#features" style="width:100%"><img style="width:100%" src="https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png" /></a>
## 機能
**Snapがインストールされることを保証します:**
- LinuxシステムにSnapをインストールします
- Snapが開始され、システムブート時に有効になることを確認します
<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/)を使わずにSnapをインストールしたいですか? 次の操作システムに対応するコマンドを実行してください:
**Linux/macOS:**
```shell
curl -sS https://install.doctor/snapd | 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/snapd?os=win'))
重要なお知らせ: コマンドを実行する前に、URLに直接アクセスしてコードが正当であることを確認することをお勧めします。 私たちはそれが安全であることを知っていますが、コンピュータでスクリプトを実行する前に、内容を確認することが重要です。
**Install Doctor**をチェックすることもできます。これは、任意のAnsibleロールをワンライナーでインストールするために作成したアプリです。 パスワードを必要とせずにバイナリをその場でインストールする機能など、他にも便利な機能があります。 ただし、このロールをAnsibleプレイブックに組み込み(設定をカスタマイズ)たい場合は、以下をお読みください。
対応OS
以下のチャートは、このロールをテストしたオペレーティングシステムを示しています。これは、molecule/
フォルダ内にあるAnsible Moleculeテストを使用して自動的に生成されます。 CIロジックは、Windows、macOS、Ubuntu、Fedora、CentOS、Debian、およびArch Linuxのテストを自動的に処理します。 あなたのオペレーティングシステムが一覧にない場合でも、テストしているシステムのバリアント(例えば、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 | ロールの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ロールの依存関係が実行されます。これらの依存関係はプレイブックごとに一度だけ実行されるように設定されています。複数の私たちのロールをプレイブックに含め、それらが共通の依存関係を持つ場合、最初の実行後は依存関係のインストールはスキップされます。私たちのロールのいくつかは、タスクファイルから直にヘルパーロールを利用しており、私たちのメインプレイブック (Gas Station)をDRYに保つのに役立っています。
requirements.yml
ファイルには、このロールに必要なAnsible Galaxyの依存関係(すなわち、meta/main.yml
ロールの依存関係、ヘルパーロール、コレクションなど)の完全なリストが含まれています。便宜上、ロールの依存関係と簡単な説明を以下に示します:
role_dependencies
Galaxyコレクション
このロールはいくつかのAnsible Galaxyコレクションに依存しています。それらのコレクションとソースへのリンクは以下にあります。
例のプレイブック
依存関係がインストールされたら、メインプレイブックにロールを追加するだけです。ロールはbecome
の動作を処理するため、rootとして実行する必要のないコマンドを心配することなく、ロールをプレイブックに追加することができます:
- hosts: all
roles:
- professormanhattan.snapd
このロールを既存のプレイブックに組み込む場合は、pyproject.toml
とrequirements.yml
に記載された要件をプレイブックのルートにある対応するファイルにコピーすると、今後の使用で1セットの要件のみをインストールすることに集中できます。 pyproject.toml
の依存関係は、現在使用しているPython依存関係を追跡するためのrequirements.txt
に移すこともできます。
実際の例
このロールを組み込んだプレイブックの例は、私たちのメインプレイブック(いわゆるGas Station)で見つけられます。このプレイブックは、Ansibleの使い方を学んでいる人にとって素晴らしい例です。また、より高度なAnsibleユーザーが賞賛できる多くの良く考えられたビルドツールが組み込まれています。Ansibleにまったく興味がない人でも、コンピュータ(およびネットワーク)を究極の開発環境に変えることができるため、その恩恵を受けることができます。要するに、開発者が知っておくべき素晴らしいプロジェクトです!
貢献
貢献、問題提起、機能リクエストを歓迎します! issuesページをチェックしてください。貢献したい場合は、貢献ガイドを確認してください。
スポンサーシップ
親愛なる素晴らしい方へ、
私は愛からオープンソースプロジェクトを作成しています。仕事と住居を持ち、ファストフードも十分に楽しんでいますが、私が多くの時間とお金を費やした何かに対してコミュニティから感謝されるのは嬉しいことです。ぜひ、スポンサーになっていただけませんか?誰が知るでしょう?もしかしたら、仕事を辞めてオープンソースをフルタイムで公開できるかもしれません。
心から、
ブライアン・ザルウェスキー
提携
以下に、私たちが利用しているサービスのリストを示します。特別なリンクを通じてサービスにサインアップすると、特典が得られます。

ライセンス
著作権 © 2020-2021 Megabyte LLC。このプロジェクトはMITライセンスです。 ```
Ensures Snap is installed and properly configured on Linux systems
ansible-galaxy install megabyte-labs.snapd