tl; dr |功能|自定义配置文件|测试您的个人资料|选项|要求|稳定性|其他操作系统|执照
![]()
![]()
经过良好测试且可自定义的设置,可与Debian一起提供您的工作站。
使您的系统重新控制。管理默认情况下未提供的软件包,并跟踪存储库以及已安装的软件。任何捆绑的软件包都提供了充分管理它们的可能性,即确保它们已安装或删除。当然,如果您想自己管理它们,您也可以简单地忽略它们。
它被设计为通用的buildfiles (与Dotfiles )经理。您可以根据需要添加尽可能多的配置文件(例如:对于不同笔记本上的不同硬件),并且可以选择在本地或网络上提供。
在开始之前,请确保您的系统满足要求。
当您已经在上游提交个人资料时,请使用此功能从头开始提供系统。唯一的要求是bash和sudo ,其他所有内容都将自动安装。
# Provision default profile
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash
# Provision profile 'generic-all'
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash -s generic-all当您还没有提交给上游的个人资料时,请使用它从头开始提供系统。
# 1. Clone this project
git clone https://github.com/cytopia/ansible-debian
cd ansible-debian
# 2. Add your profile 'bob' (See 'Create custom profiles' section of this README)
# 3. Provision your system (with profile 'bob')
# Note when to use sudo and when not
sudo make deploy-init
make deploy-apt-sources PROFILE=bob
sudo make deploy-dist-upgrade
make deploy-tools PROFILE=bob # Dry-run everything for profile 'generic-all'
make diff-tools PROFILE=generic-all
# Dry-run everything for profile 'generic-all' without role 'systemd'
make diff-tools PROFILE=generic-all IGNORE=systemd
# Dry-run a specific role 'i3-gaps'
make diff-tools PROFILE=generic-all ROLE=i3-gaps这个Ansible的存储库使您可以提供Debian机器并保持其最新。它允许您为不同的机器创建不同的配置文件,并提供任何Debian存储库无法获得的软件包。
这是一个基本的基本配置,具有明智的默认设置,可以稍微调整。它仅是作为BuildFiles Bootstrap。为了自定义应用程序本身,您仍然必须在此基础上应用您的个人杂物。
| 工具 | 描述 |
|---|---|
| Autorunner | 可配置和通知的Autostart助手,适用于i3,OpenBox等简约窗口管理器 |
| 铬 | 设置铬,附加软件包以及Chrome WebStore的指定扩展 |
| 克利佩梅努 | dmenu或rofi集成的剪贴板经理 |
| dbeaver | 通用SQL客户端 |
| Diff-Highlight | 令人敬畏的git diff输出工具 |
| Docker | Docker Repo和Package,还确保将用户添加到docker Group |
| Docker-Compose | 下载最新的docker-compose二进制 |
| ffscreencast | FFMPEG包装器用于桌面录音,并带有视频覆盖和多监视器支持 |
| Firefox | Firefox量子 |
| fzf | 命令行模糊查找器 |
| gimp | 带有Photoshop主题和关键的GIMP |
| i3 | i3wm |
| i3间隙 | i3wm在类固醇上 |
| i3-utils bin | i3WM的工具 |
| i3-utils-systemd | i3WM的SystemD文件 |
| i3blocks模型 | 很棒的i3Blocks模块 |
| kops | kubernetes操作命令行工具 |
| kubectl | kubernetes命令行工具 |
| libreoffice | Libreoffice 6与MSOFFICE 2013 ICON主题 |
| LXDM | Leight-Weight登录经理 |
| Neovim | 类固醇上的VIM |
| 网络经理 | GNOME的LAN和WiFi网络经理,可选系统托盘 |
| 哦,我 - Zsh | 一个令人愉悦的社区驱动框架,用于管理ZSH配置。 |
| 包装工 | Hashicorp的包装器来构建自动化机器 |
| Pinta | 开源油漆。NET / MSPAINT克隆。 |
| 游侠 | 带有Inline Image Preview的命令行文件管理器(也可以用作VIM文件管理器) |
| Skype | Skype Repo和包装 |
| 升华 | 崇高的仓库和包装 |
| sxiv | 小型,快速和低依赖性图像查看器具有VIM结合 |
| Systemd | 管理启用,禁用和掩盖的SystemD服务 |
| 电报 | 电报桌面存储库和包装 |
| Terraform | Hashicorp的基础架构作为代码供应商 |
| 杜纳尔 | Thunar及其处理外部磁盘以及加密磁盘的要求 |
| Thunar-Custom-actions | Thunar自定义动作 |
| 雷鸟 | 雷鸟和全球定义的附加组件 |
| Timemachine | OSX喜欢命令行的timemachine |
| urxvt | 小,快速和权利256颜色Unicode终端模拟器 |
| VirtualBox | VirtualBox上游存储库和软件包 |
| Xbacklight | 现代跨GPU Xbacklight替换 |
| XDG-MIME-META | 定义XDG-OPEN的默认应用程序 |
| Xorg | XORG及其依赖项以及GPU和触摸板配置 |
| Zathura | 带有VIM绑定的小型,快速和低依赖性PDF查看器 |
| 工具 | 描述 |
|---|---|
| 字体 - 摩尔 - 摩尼 | 具有许多字形和Unicode符号的Droidsansmono nerdfont |
| font-font-Awesome | 作为系统字体的通用行动 |
| 字体 - 桑·弗朗西斯科 | OSX优胜美地旧金山字体 |
| 字体末端 | 带有许多Glyphc和Unicode符号的终端Nerdfont |
| font-ubuntu | Ubuntu的官方字体 |
| 图标莫卡 | Moka图标主题(用于Thunar或Nautilus) |
| 主题弧 | GTK2,GTK3,Chrome等的ARC主题 |
有关所有可用软件包,请参见角色/目录。如果您缺少一个,请打开问题或拉动请求。
此外,您可以(但不必)管理以下内容:
为了自定义您的工作站或Debian基础架构,您可以为每台机器创建配置文件。由于不同的硬件或软件首选项,这可能是必要的。库存文件中的每个主机名(真实或组成)自动表示一个配置文件。
顺便说一句,Ansible的工作方式,每个配置文件从group_vars/all.yms继承了所有设置。该文件保留一个理智的默认值,显示所有可用选项,并且所有软件包都无法管理。
为了实际自定义您的配置文件,您将必须在host_vars/以相同的名称中创建一个文件。您可以host_vars复制group_vars/all。
为了更好地了解其工作原理,您可以按照此分步示例来创建一个新的配置文件:
为了此示例,让我们假设您的个人资料称为dell-xps-i3wm 。
将以下行添加到库存底部:
dell-xps-i3wm ansible_connection=local ansible_connection=local定义您的个人资料应应用于本地计算机。如果要为远程计算机创建配置文件,则您的个人资料名称必须是主机名或IP地址,可以通过网络访问远程计算机。
如前所述,您可以复制group_vars/all.yml或已经存在的host_vars文件。
使用group_vars/all.yml作为默认模板:
cp group_vars/all.yml host_vars/dell-xps-i3wm.yml使用已有的HOST_VARS文件作为默认模板:
cp host_vars/generic-all.yml host_vars/dell-xps-i3wm.yml只需编辑host_vars/dell-xps-i3wm.yml然后根据您的需求调整值即可。如果您复制了已经存在的文件,它将包含所有可能的配置选项的注释,使您可以快速查看如何更改和如何更改。
如果您想在Docker容器中测试您的配置文件,请实际配置自己的系统,请跳到下一节,否则只需运行以下命令即可。
运行以下命令以查看会发生什么:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass --check运行以下命令实际应用您的个人资料:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass在实际运行自己系统上的任何新配置文件之前,您可以事先对其进行测试。这可以在Docker容器或流浪盒中完成,以查看一切是否按预期工作。如果您正在创建新角色并想看看它是否有效,这也可能非常方便。
注意:在运行测试之前,Docker映像将始终是自动构建。
在运行之前,您应该知道一些可以应用于make命令的参数。请参阅下表:
| 多变的 | 必需的 | 描述 |
|---|---|---|
PROFILE | 是的 | 库存主机名(您的个人资料) |
VERBOSE | 不 | 一个可说的冗长。有效值1 0 3 2 |
ROLE | 不 | 仅运行此特定标签(角色名称) |
对generic-all文件进行完整测试:
make test-docker-full PROFILE=generic-all按随机顺序进行generic-all文件的完整测试:
make test-docker-random PROFILE=generic-all仅在Profile generic-all中运行i3-gaps角色
make test-docker-single PROFILE=generic-all ROLE=i3-gaps如果您不信任Docker中的测试,并且希望以VM图形方式查看最终结果,则也可以使用Vagrant进行相同的操作。
make test-vagrant PROFILE=generic-all寻找包装部分,并将它们设置为所需的状态。 install或remove或任何其他值以忽略它们。
$ vi host_vars/ < name > .yml...
i3-gaps : ' install '
font_ubuntu : ' install '
diff_highlight : ' install '
docker : ' remove '
docker_compose : ' remove '
skype : ' ignore '
sublime : ' ignore '
...许多软件包还带有您可以调整的选项。例如,您可以定义系统应提供的Python版本:
$ vi host_vars/ < name > .yml...
python_2 : yes
python_3 : yes
...另一个自定义可能是打开Speficif文件类型时要使用的默认程序:
$ vi host_vars/ < name > .yml...
xdg_mime_defaults :
- desktop_file : chromium.desktop
mime_types :
- text/html
- text/xml
- application/xhtml_xml
- application/x-mimearchive
- x-scheme-handler/http
- x-scheme-handler/https
...或为lxdm设置您的DPI和其他选项
$ vi host_vars/ < name > .yml...
lxdm_dpi : 132
lxdm_gtk_theme : Arc-Darker
lxdm_show_user_list : no
...选择您的GPU和触摸板驱动程序:
$ vi host_vars/ < name > .yml # Supported values: 'amdgpu' 'ati' 'intel' 'modesetting' 'nouveau' 'nvidia' 'radeon'
xorg_gpu : modesetting
# Enable VDPAU_DRIVER=va_gl systemwide
xorg_gpu_vdpau_va_gl_enable : yes
# 'libinput' or 'synaptics'
xorg_touchpad_enable : yes
xorg_touchpad_driver : ' synaptics '
...在开始之前,系统上必须存在一些工具。只需将这些命令复制到您的终端中即可。
apt-get update
apt-get install --no-install-recommends --no-install-suggests -y
make
sudo
确保允许您的用户运行sudo
usermod -aG sudo <username>
为了确保此设置的最大稳定性,已经定义了大量的Travis-CI检查,该检查每天晚上自动运行。这些测试在Docker容器中进行。已经定义了以下测试用例:
如果您正在运行不同的操作系统,并且仍然想为系统提供Ansible,请查看以下类似的项目:
请随时贡献并根据需要添加新角色。这样做时,请查看所需最佳实践的贡献。md 。
麻省理工学院许可证
版权(C)2017 Cytopia