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