megabyte-labs.homebrew

Homebrew - macOS/Linux 的软件包管理工具

Megabyte Labs 制作



一个在macOS和Linux系统上安装Homebrew(软件包管理系统)的Ansible角色


目录

概述

该仓库是一个用于在macOS和Linux系统上安装Homebrew(软件包管理系统)的Ansible角色的主页。Homebrew是一个免费和开源的软件包管理系统,简化了在Apple的操作系统macOS和Linux上安装软件的过程。这个名字旨在暗示在Mac上根据用户的喜好构建软件的概念。

特点

确保Homebrew已安装:

  • 检查Homebrew是否已经安装
  • 在macOS和Linux上安装Homebrew
  • 确保.bashrc文件正确地将Homebrew添加到PATH变量中

安装Homebrew包:

  • 确保Homebrew和Homebrew包是最新的
  • 安装可配置的Homebrew包列表(通过homebrew_packages变量)
  • 确保预装的Homebrew casks是最新的
  • 在macOS上安装可配置的Homebrew casks(通过homebrew_casks变量)

快速开始

想要安装Homebrew而不使用Ansible? 只需运行与您的操作系统相对应的以下命令:

Linux/macOS:

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'))

重要提示: 在运行上述命令之前,您应该直接访问该网址以确保代码是可信的。我们知道它是安全的,但在运行任何脚本之前,您应该检查它。

您还可以查看**Install Doctor**。这是我们创建的一个应用程序,可以通过一行命令安装任何Ansible角色。它还有一些其他很棒的功能,比如在不需要密码的情况下动态安装二进制文件。然而,如果您想将此角色集成到Ansible剧本中(并自定义设置),请继续阅读下面的内容。

支持的操作系统

下表显示了我们在其上测试了该角色的操作系统。它是通过位于molecule/文件夹中的Ansible Molecule测试自动生成的。我们有CI逻辑可自动处理Windows、macOS、Ubuntu、Fedora、CentOS、Debian和Archlinux的测试。如果您的操作系统没有列出,但它是我们测试的系统的变体(即基于Debian或基于RedHat的系统),那么此角色仍然有效的可能性是存在的。

操作系统家族 操作系统版本 状态 幂等性 测试日期
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日

什么是幂等性? 幂等性意味着如果您连续运行此角色两次,则第二次运行系统不会发生变化。

我们花了很多时间来完善我们的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 一系列有助于Lint的工具
proselint 用于生成英语语言改进的Lint工具(用于改善文档)
yamllint 用于YAML文件的Lint工具,确保使用正确的语法和样式

Galaxy角色

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

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

角色依赖关系

Galaxy集合

此角色依赖于多个Ansible Galaxy集合。集合及其源链接如下所示。

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

示例剧本

安装了依赖关系后,您只需将角色添加到主剧本中。该角色处理become行为,因此您可以直接将该角色添加到您的剧本中,而不必担心不应以root身份运行的命令:

- hosts: all
  roles:
    - professormanhattan.homebrew

如果您将此角色纳入到现有的剧本中,建议您将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 megabyte-labs.homebrew
许可证
other
下载
7.9k
拥有者
Free open-source developer tools for managing massive amounts of code