professormanhattan.snapd

Snap - 一个Linux包管理工具

Megabyte Labs 制作



一个确保在Linux系统上安装和正确配置Snap的Ansible角色


目录

概览

这个库是一个Ansible角色的主页,确保在Linux系统上安装和正确配置Snap。Snap是由Canonical开发的一个软件打包和部署系统,适用于使用Linux内核的操作系统。称为snap的程序包及其使用工具snapd可在多种Linux发行版中使用,并允许上游软件开发者直接向用户分发他们的应用程序。Snap是自包含的应用程序,运行在沙盒中,并通过中介访问主机系统。

功能

确保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以确保代码是合法的。我们已经确认它是安全的,但在您计算机上运行任何脚本之前,您应该检查它。

您还可以查看**安装医生**。这是我们创建的一个应用程序,可以用一行命令安装任何Ansible角色。它还具有一些其他方便的功能,例如能够在飞行中安装二进制文件而不需要密码。但是,如果您想将此角色集成到Ansible剧本中(并自定义设置),请继续阅读下面的内容。

支持的操作系统

下面的表格展示了我们在其上测试过此角色的操作系统。它是通过位于molecule/文件夹中的Ansible Molecule测试自动生成的。我们设置了CI逻辑,以自动处理Windows、macOS、Ubuntu、Fedora、CentOS、Debian和Archlinux的测试。如果您的操作系统未列出,但与我们测试的某个系统一样(即Debian风格的系统或RedHat风格的系统),那么该角色可能仍然有效。

OS家族 OS版本 状态 幂等性 测试于

幂等性是什么意思? 幂等性是指,如果您连续运行此角色两次,则第二次运行时系统不会发生任何更改。

我们花了很多时间完善我们的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虚拟机的必需工具
✔️
pywinrm 必需用于配置使用WinRM的Windows机器
✔️
ansible-lint Ansible文件的lint工具
ansibler 用于生成高级文档的自定义工具(例如,它生成兼容性图表和其他图表)
black Python文件的自动格式化工具,以防项目使用Python测试脚本
blocklint lint工具,防止某些单词进入代码库
flake8 Python linter,报告Python语法和样式错误
mod-ansible-autodoc ansible-autodoc的自定义分支,允许我们根据角色的YAML文件中的注释自动生成文档
molecule Ansible的测试框架
molecule-docker Molecule插件,用于配置Docker容器
molecule-vagrant Molecule插件,用于配置Vagrant虚拟机
pre-commit-hooks 有助于linting的工具套件
proselint 用于生成英语语言改进的linter(用于改善文档)
yamllint 确保使用正确语法和样式的YAML文件linter

Galaxy角色

尽管我们大多数角色没有依赖关系,但在某些情况下,必须先安装另一个角色才能继续逻辑。在剧本开始时,列在meta/main.yml中的Ansible Galaxy角色依赖关系将被运行。这些依赖关系配置为每个剧本只运行一次。如果您在剧本中包含了多个我们具有共同依赖的角色,则在第一次运行后将跳过依赖安装。我们的一些角色还直接在任务文件中利用辅助角色,这有助于保持我们的主剧本(加油站)干燥。

requirements.yml文件包含该角色所需的Ansible Galaxy依赖项的完整列表(即meta/main.yml角色依赖性、辅助角色、集合等)。为了您的方便,下面列出了角色依赖关系及其简要描述:

role_dependencies

Galaxy集合

该角色依赖于多个Ansible Galaxy集合。集合以及它们源的链接列在下面。

  • community.general Ansible Galaxy徽章
  • google.cloud Ansible Galaxy徽章

示例剧本

安装依赖后,您所要做的就是将角色添加到主剧本中。该角色处理become行为,因此您可以简单地将角色添加到剧本中,而无需担心不应以root身份运行的命令:

- hosts: all
  roles:
    - professormanhattan.snapd

如果您将此角色集成到现有的剧本中,则可能明智的是将pyproject.tomlrequirements.yml中列出的要求复制到您剧本的根目录中的相应文件中,这样今后使用时只需担心安装一整套要求。请注意,pyproject.toml中的依赖项可以移动到更传统的requirements.txt中,如果您当前使用它来跟踪Python依赖项。

真实世界示例

您可以在我们的主剧本中找到一个集成此角色的剧本示例(即加油站)。此剧本是学习如何使用Ansible的绝佳示例。它还包含许多经过深思熟虑的构建工具,许多高级Ansible用户会欣赏。而且关心Ansible的人也可以从中受益,因为它让您可以将计算机(和网络)转变为终极开发环境。归根结底,这是一个开发者应该了解的精彩项目!

贡献

欢迎贡献、问题和功能请求!欢迎查看问题页面。如果您想贡献,请查看贡献指南

赞助

亲爱的好人,

我出于热爱创建开源项目。尽管我有工作、住所和足够的快餐,但得到社区的认可仍然很不错,因为我在此上花费了很多时间和金钱。请考虑赞助我!谁知道呢?也许我能辞职,全职发布开源项目。

真诚的,

Brian Zalewski

Open Collective赞助商 GitHub赞助商 Patreon

附属机构

以下是我们利用的一些服务列表,这些服务通过我们的特殊链接提供特殊奖励:

MailChimp DigitalOcean推荐徽章

许可证

版权 © 2020-2021 Megabyte LLC。本项目拥有MIT许可证。

安装
ansible-galaxy install professormanhattan.snapd
许可证
other
下载
4.5k
拥有者
Often imitated, never duplicated