tl; dr |特徴|カスタムプロファイル|プロフィールをテスト|オプション|要件|安定性|他のos |ライセンス
![]()
![]()
よくテストされ、カスタマイズ可能なAnsibleセットアップは、WorkstationをDebianでプロビジョニングします。
システムを制御できます。デフォルトで提供されていないパッケージを管理し、リポジトリとインストールされたソフトウェアを追跡します。バンドルされたパッケージは、それらを完全に管理する可能性を提供します。つまり、それらがインストールまたは削除されていることを確認します。もちろん、自分で管理したい場合に備えて、単にそれらを無視することもできます。
( 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としてのみ意味します。アプリケーション自体をカスタマイズするには、その上に個人のドットファイルを適用する必要があります。
| 道具 | 説明 |
|---|---|
| オートランナー | I3、OpenBoxなどの最小限のウィンドウマネージャー向けの構成可能で通知覚醒自動積ヘルパー |
| クロム | Chrome Webstoreからの特定の拡張機能だけでなく、Chromium、追加のパッケージ、 |
| クリプメン | dmenuまたはrofi統合を備えたクリップボードマネージャー |
| dbeaver | ユニバーサルSQLクライアント |
| Diff-Highlight | Awesome git diff出力用のツール |
| Docker | Docker Repoとパッケージ、およびユーザーがdockerグループに追加されるようにする |
| docker-compose | 最新のdocker-composeバイナリをダウンロードします |
| ffscreencast | ビデオオーバーレイとマルチモニターサポートを使用したデスクトップ録画用のFFMPEGラッパー |
| Firefox | Firefox Quantum |
| FZF | コマンドラインファジーファインダー |
| gimp | Photoshopテーマとキーバインディングを備えたGIMP |
| i3 | i3wm |
| I3ギャップ | ステロイドのI3WM |
| i3-utils-bin | i3wmのツール |
| i3-utils-systemd | i3wmのSystemDファイル |
| i3blocks-modules | 素晴らしいi3blocksモジュール |
| kops | Kubernetes Operationsコマンドラインツール |
| Kubectl | Kubernetesコマンドラインツール |
| Libreoffice | Msoffice 2013アイコンテーマを備えたLibreoffice 6 |
| LXDM | Leight-Weight Login Manager |
| Neovim | ステロイドのvim |
| ネットワークマネージャー | オプションのシステムトレイを備えたGnomeのLANおよびWiFiネットワークマネージャー |
| OH-MY-ZSH | ZSH構成を管理するための楽しいコミュニティ主導のフレームワーク。 |
| パッカー | ハシコープのパッカーは、自動化されたマシンを構築します |
| ピンタ | オープンソースPaint.NET / MSPAINTクローン。 |
| レンジャー | インライン画像プレビューを備えたコマンドラインファイルマネージャー(VIMファイルマネージャーとしても使用できます) |
| Skype | Skype Repoとパッケージ |
| 崇高 | 崇高なレポとパッケージ |
| sxiv | VIMバインディングを備えた小さく、高速で低依存性画像ビューアー |
| SystemD | [有効化]、無効化、マスクされたSystemDサービスを管理します |
| 電報 | Telegramデスクトップリポジトリとパッケージ |
| テラフォーム | コードプロビジョンとしてのハシコープのインフラストラクチャ |
| トゥナー | Thunarと外部ディスクと暗号化されたディスクを処理するための要件 |
| Thunar-Custom-actions | Thunarカスタムアクション |
| サンダーバード | サンダーバードとグローバルに定義されたアドオン |
| タイムマシン | コマンドラインのTimemachineのようなOSX |
| urxvt | 小さく、高速でレイトウェイト256カラーユニコード端子エミュレータ |
| VirtualBox | VirtualBoxアップストリームリポジトリとパッケージ |
| Xbacklight | モダンなクロスグプXbacklightの代替品 |
| xdg-mime-meta | XDG-Openのデフォルトアプリケーションを定義します |
| xorg | Xorgとその依存関係、GPUおよびTouchPad構成 |
| ザトゥラ | VIMバインディングを備えた小さく、高速で低依存性PDFビューアー |
| 道具 | 説明 |
|---|---|
| font-droid-sans-mono | 多くのグリフとユニコードシンボルを備えたDroidsansmono nerdfont |
| Font-font-awesome | システムフォントとしてのfontesome |
| Font-San-Francisco | OSX Yosemite San Franciscoフォント |
| フォントターミナル | 多くのGlyphcとUnicodeシンボルを備えたTerminus nerdfont |
| font-ubuntu | Ubuntuの公式フォント |
| アイコンモカ | Mokaのアイコンテーマ(ThunarまたはNautilus用) |
| テーマアーク | GTK2、GTK3、ChromeなどのARCテーマ |
利用可能なすべてのパッケージについては、役割/ディレクトリを参照してください。不足している場合は、問題またはプルリクエストを開きます。
さらに、次のことを管理できます(ただし、必要はありません):
ワークステーションまたはDebianインフラストラクチャをカスタマイズするために、各マシンのプロファイルを作成できます。これは、異なるハードウェアやソフトウェアの好みのために必要になる場合があります。インベントリファイル内の各ホスト名(REALまたはMADE UP)は、自動的に1つのプロファイルを表します。
ちなみに、Ansible Worksでは、各プロファイルはGroup_vars/all.ymlからすべての設定を継承します。このファイルは、利用可能なすべてのオプションを示す正気のデフォルトを保持し、すべてのパッケージが管理されていません。
プロファイルを実際にカスタマイズするには、在庫で指定した同じ名前でhost_vars/でファイルを作成する必要があります。 Group_vars/all.ymlを直接コピーするか、host_vars/generic-all.ymlなどのhost_varsから既存のプロファイルを使用できます。
それがどのように機能するかをよりよく理解するために、新しいプロファイルを作成するためのこのステップバイステップの例に従うことができます。
この例のために、あなたのプロファイルが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.ymlhost_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コンテナまたはVagrantボックスで実行できます。これは、新しい役割を作成し、それが機能するかどうかを確認したい場合にも非常に便利かもしれません。
注:テストを実行する前に、Dockerイメージは常に自動構築されます。
実行する前に、 makeコマンドに適用できるいくつかの議論に注意する必要があります。以下の表を参照してください。
| 変数 | 必須 | 説明 |
|---|---|---|
PROFILE | はい | 在庫ホスト名(あなたのプロフィール) |
VERBOSE | いいえ | アンシブルの冗長性。有効3 1 : 0 、または2 |
ROLE | いいえ | この特定のタグ(ロール名)のみを実行する |
generic-allプロファイルの完全なテストを実行します:
make test-docker-full PROFILE=generic-allランダムな順序でgeneric-allプロファイルの完全なテストを実行します。
make test-docker-random PROFILE=generic-all generic-allプロファイルでi3-gaps役割のみを実行します
make test-docker-single PROFILE=generic-all ROLE=i3-gapsDockerのテストを信用しておらず、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およびTouchPadドライバーを選択してください。
$ 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>
このセットアップの最も可能な安定性を保証するために、毎晩自動的に実行される大規模なトラビスCIチェックが定義されています。これらのテストは、Dockerコンテナ内で実行されます。次のテストケースが定義されています。
別のOSを実行していて、それでもシステムをAnsibleでプロビジョニングしたい場合は、次の同様のプロジェクトをご覧ください。
必要に応じて、お気軽に貢献して新しい役割を追加してください。そうする場合は、必要なベストプラクティスの貢献をご覧ください。
MITライセンス
著作権(c)2017サイトピア