professormanhattan.snapd
以下のテキストを日本語に翻訳します。シンプルでわかりやすい表現にします。
Snap - Linuxパッケージマネージャ
作成者 Megabyte Labs
SnapをLinuxシステムにインストールして正しく構成するAnsibleロール
目次
概要
このリポジトリは、Linuxシステム上にSnapがインストールされ、正しく構成されていることを保証するAnsibleのロールです。Snapは、Canonicalが開発したソフトウェアパッケージおよびデプロイメントシステムで、Linuxカーネルを使用するオペレーティングシステムで動作します。パッケージは「スナップ」と呼ばれ、それを使用するツール「snapd」は、さまざまなLinuxディストリビューションで機能し、上流のソフトウェア開発者がアプリケーションを直接ユーザーに配布できるようにします。スナップは自己完結型のアプリケーションで、サンドボックス内でホストシステムへの制御されたアクセスを持ちます。
機能
Snapがインストールされていることを確保します:
- LinuxシステムにSnapをインストールします
- Snapが起動し、システム起動時に有効にされることを確認します
クイックスタート
Ansibleを使わずにSnapをインストールしたいですか?お使いのオペレーティングシステムに関連する次のコマンドを実行してください:
Linux/macOS:
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テストを使用して自動的に生成されます。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
Alternatively, you can simply run bash .config/scripts/start.sh
if you are new to Ansible and do not mind the development requirements also being installed. This is the easy way to ensure that everything works properly.
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のカスタムフォーク | |
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
に記載された要件をそれぞれのファイルにコピーすると、将来使用する際に一つの要件のセットをインストールするだけで済むため、望ましいでしょう。pyproject.toml
の依存関係は、現在使用中のPythonの依存関係を追跡するために使われているtrequirements.txt
に移行することができます。
実例
このロールを組み込んだプレイブックの例を、私たちのメインプレイブック(通称Gas Station)で見つけることができます。プレイブックはAnsibleの使い方を学んでいる方にとって素晴らしい例です。また、巧妙に考えられたビルドツールを多く取り入れており、より高度なAnsibleユーザーも楽しむことができます。また、Ansibleにあまり関心がない方もこのプロジェクトの利点を享受できます。なぜなら、コンピュータ(およびネットワーク)を究極の開発環境に変えることができるからです。本質的に、これは開発者が知っておくべき素晴らしいプロジェクトです!
貢献
貢献、問題、機能リクエスト大歓迎です!問題ページをチェックしてみてください。貢献したい方は、貢献ガイドをご覧ください。
スポンサーシップ
親愛なる素晴らしい方へ,
私は、愛情からオープンソースプロジェクトを作成しています。雇用、住居、そしてファストフードをある程度摂取できていますが、コミュニティから多くの時間とお金をかけたことに対して評価されるのはとても嬉しいことです。ぜひスポンサーしていただければ嬉しいです!もしかしたら、仕事を辞めてオープンソースにフルタイムで参加できるかもしれません。
心から,
Brian Zalewski
提携先
以下は、特別なリンクを通じてサービスにサインアップすると特典を提供するサービスのリストです:

ライセンス
Copyright © 2020-2021 Megabyte LLC。このプロジェクトはMITライセンスです。
以上が翻訳された内容です。何か質問やリクエストがありましたら教えてください。
Ensures Snap is installed and properly configured on Linux systems
ansible-galaxy install professormanhattan.snapd