tl; dr | 기능 | 사용자 정의 프로파일 | 프로필을 테스트하십시오 | 옵션 | 요구 사항 | 안정성 | 다른 OS | 특허
![]()
![]()
워크 스테이션을 데바이안과 함께 제공하기위한 잘 테스트되고 맞춤형 Ansible 설정.
시스템을 다시 통제하십시오. 기본적으로 제공되지 않은 패키지를 관리하고 설치된 소프트웨어뿐만 아니라 저장소를 추적합니다. 모든 번들 패키지는이 패키지를 완전히 관리 할 수있는 가능성을 제공합니다. 즉, 설치 또는 제거되었는지 확인하십시오. 물론 직접 관리하고 싶을 경우를 대비하여 간단히 무시할 수도 있습니다.
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 저장소를 사용하면 데비안 머신을 제공하고 최신 상태로 유지할 수 있습니다. 이를 통해 다른 기계에 대해 다른 프로파일을 만들 수 있으며 데비안 저장소에서 사용할 수없는 패키지를 제공 할 수 있습니다.
이것은 약간 조정할 수있는 현명한 기본값을 가진 기본 Idemotent 프로비저닝입니다. 그것은 단지 buildfiles 부트 스트랩을 의미합니다. 애플리케이션 자체를 사용자 정의하려면 여전히 개인의 도트 파일을 적용해야합니다.
| 도구 | 설명 |
|---|---|
| 자동 운영자 | I3, OpenBox 및 기타와 같은 최소한의 창 관리자를위한 구성 가능 및 알림 인식 AutosTART 도우미 |
| 크롬 | Chrome Webstore에서 크롬, 추가 패키지 및 지정된 확장을 설정합니다. |
| 클립 메누 | dmenu 또는 rofi 통합이있는 클립 보드 관리자 |
| dbeaver | 범용 SQL 클라이언트 |
| 차이 높은 조명 | 멋진 git diff 출력을위한 도구 |
| 도커 | Docker Repo 및 패키지 및 사용자가 docker Group에 추가되도록합니다. |
| Docker-compose | 최신 docker-compose Binary를 다운로드합니다 |
| ffscreencast | 비디오 오버레이 및 멀티 모니터 지원으로 데스크탑 기록을위한 FFMPEG 래퍼 |
| 파이어 폭스 | Firefox Quantum |
| FZF | 명령 줄 퍼지 파인더 |
| 단 | Photoshop 테마와 키 바인딩이있는 김프 |
| i3 | i3wm |
| i3 갭 | 스테로이드의 I3WM |
| i3- 유틸스-빈 | I3WM 용 도구 |
| i3- utils-systemd | I3WM 용 시스템 파일 |
| i3 블록 모듈 | 멋진 i3 블록 모듈 |
| kops | Kubernetes 운영 명령 줄 도구 |
| kubectl | Kubernetes 명령 줄 도구 |
| libreoffice | Msoffice 2013 아이콘 테마와 함께 Libreoffice 6 |
| LXDM | Leight-Weight 로그인 관리자 |
| Neovim | 스테로이드에 Vim |
| 네트워크 관리자 | 옵션 시스템 트레이가있는 Gnome의 LAN 및 WiFi 네트워크 관리자 |
| OH-MY-ZSH | ZSH 구성을 관리하기위한 유쾌한 커뮤니티 중심의 프레임 워크. |
| 포장 기계 | Hashicorp의 패커는 자동화 된 기계를 건설합니다 |
| 핀타 | 오픈 소스 Paint.net / Mspaint 클론. |
| 레인저 | 인라인 이미지 미리보기가있는 명령 줄 파일 관리자 (VIM 파일 관리자로도 사용할 수 있음) |
| 스카이프 | Skype Repo 및 패키지 |
| 숭고한 | 숭고한 리포 및 패키지 |
| sxiv | VIM 바인딩을 가진 작고 빠르며 낮은 의존성 이미지 뷰어 |
| 시스템 | 활성화, 비활성화 및 마스크 된 시스템 서비스를 관리하십시오 |
| 전보 | Telegram Desktop Repo 및 패키지 |
| Terraform | 코드 프로비저너로서 Hashicorp의 인프라 |
| Thunar | Thunar 및 외부 디스크 및 암호화 디스크를 처리하려는 요구 사항 |
| Thunar-Custom-Actions | Thunar Custom Action |
| 천둥새 | Thunderbird 및 전 세계적으로 정의 된 애드온 |
| Timemachine | 명령 줄에 대한 타임 마치 같은 OSX |
| urxvt | 작고 빠르며 레이트 가중 256 컬러 유니 코드 터미널 에뮬레이터 |
| 가상 상자 | VirtualBox 업스트림 리포지토리 및 패키지 |
| Xbacklight | 현대 크로스 GPU Xbacklight 교체 |
| XDG-Mime-Meta | XDG-Open의 기본 응용 프로그램을 정의합니다 |
| xorg | Xorg 및 그 종속성 및 GPU 및 터치 패드 구성 |
| Zathura | VIM 바인딩을 가진 작고 빠르며 낮은 의존성 PDF 뷰어 |
| 도구 | 설명 |
|---|---|
| 글꼴 드로이드-산소 모노 | 많은 글리프와 유니 코드 기호가있는 Droidsansmono nerdfont |
| 글꼴 전기식 | 시스템 글꼴로서 우수합니다 |
| 글꼴-산-프란시스코 | OSX 요세미티 샌프란시스코 글꼴 |
| 글꼴 말단 | 많은 glyphcs 및 유니 코드 기호가있는 Terminus nerdfont |
| 글꼴 | 우분투의 공식 글꼴 |
| 아이콘-모카 | Moka 아이콘 테마 (Thunar 또는 Nautilus 용) |
| 테마 아크 | GTK2, GTK3, Chrome 및 기타의 아크 테마 |
사용 가능한 모든 패키지에 대한 역할/ 디렉토리를 참조하십시오. 누락 된 경우 문제 또는 풀 요청을 열어보십시오.
또한 다음을 관리 할 수는 있지만 필요하지 않습니다.
워크 스테이션 또는 데비안 인프라를 사용자 정의하려면 각 기계에 대한 프로필을 만들 수 있습니다. 하드웨어 또는 소프트웨어 기본 설정이 다르기 때문에 필요할 수 있습니다. 인벤토리 파일의 각 호스트 이름 (실제 또는 구성)은 자동으로 하나의 프로필을 나타냅니다.
그건 그렇고, Ansible은 작동하면 각 프로파일은 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.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 컨테이너 또는 Vagrant Box 에서 수행 할 수 있습니다. 새로운 역할을 수행하고 그것이 작동하는지 확인하고 싶을 때 이것은 매우 편리 할 수 있습니다.
참고 : Docker 이미지는 테스트를 실행하기 전에 항상 자동 구축됩니다.
실행하기 전에 make 명령에 적용될 수있는 몇 가지 주장을 알고 있어야합니다. 아래 표를 참조하십시오.
| 변하기 쉬운 | 필수의 | 설명 |
|---|---|---|
PROFILE | 예 | 인벤토리 호스트 이름 (프로필) |
VERBOSE | 아니요 | anssible verbosity. 유효한 값 : 0 , 1 , 2 또는 3 |
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 및 터치 패드 드라이버를 선택하십시오.
$ 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
사용자가 RUN SUDO가 허용되는지 확인하십시오
usermod -aG sudo <username>
이 설정의 가장 가능한 안정성을 보장하기 위해 매일 밤 자동으로 실행되는 광범위한 Travis-CI 검사가 정의되었습니다. 이러한 테스트는 Docker 컨테이너 내부에서 실행됩니다. 다음 테스트 사례가 정의되었습니다.
다른 OS를 실행 중이지만 여전히 Ansible으로 시스템을 제공하려는 경우 다음과 비슷한 프로젝트를 살펴보십시오.
원하는대로 자유롭게 기여하고 새로운 역할을 추가하십시오. 그렇게 할 때 필요한 모범 사례에 대한 Contributing.md 를 살펴보십시오.
MIT 라이센스
저작권 (C) 2017 Cytopia