tl; dr | คุณสมบัติ | โปรไฟล์ที่กำหนดเอง ทดสอบโปรไฟล์ของคุณ | ตัวเลือก | ข้อกำหนด | ความมั่นคง ระบบปฏิบัติการอื่น ๆ | ใบอนุญาต
![]()
![]()
การตั้งค่า Ansible ที่ผ่านการทดสอบและปรับแต่งได้ดีเพื่อจัดเตรียมเวิร์กสเตชันของคุณกับ 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 ของคุณและรักษาไว้ได้ทันสมัย ช่วยให้คุณสามารถสร้างโปรไฟล์ที่แตกต่างกันสำหรับเครื่องจักรที่แตกต่างกันและเสนอแพ็คเกจที่ไม่สามารถใช้งานได้โดยที่เก็บข้อมูลใด ๆ
นี่คือการจัดเตรียม idempotent พื้นฐานที่มีค่าเริ่มต้นที่สมเหตุสมผลซึ่งสามารถปรับได้เล็กน้อย มันมีความหมายเฉพาะในฐานะ BuildFiles Bootstrap ในการปรับแต่งแอปพลิเคชันเองคุณจะยังคงต้องใช้ dotfiles ส่วนตัวของคุณอยู่เหนือสิ่งนั้น
| เครื่องมือ | คำอธิบาย |
|---|---|
| autorunner | ผู้ช่วยอัตโนมัติที่กำหนดค่าได้ |
| โครเมียม | ตั้งค่าโครเมียมแพ็คเกจเพิ่มเติมรวมถึงส่วนขยายที่ระบุจาก Chrome Webstore |
| Clipmenu | Clipboard Manager พร้อมการรวม dmenu หรือ rofi |
| dbeaver | ไคลเอนต์สากลสากล |
| มีแสงสว่างสูง | เครื่องมือสำหรับเอาต์พุต git diff ที่ยอดเยี่ยม |
| นักเทียบท่า | Docker repo และแพ็คเกจและตรวจสอบให้แน่ใจว่าผู้ใช้ถูกเพิ่มเข้าไปในกลุ่ม docker |
| นักเทียบท่า | ดาวน์โหลดไบนารี docker-compose ล่าสุด |
| ffscreencast | FFMPEG wrapper สำหรับการบันทึกเดสก์ท็อปพร้อมการซ้อนทับวิดีโอและการสนับสนุนมัลติมอนิเตอร์หลาย |
| Firefox | ควอนตัม Firefox |
| FZF | สายคำสั่ง Fuzzy Finder |
| คนขี้เกียจ | gimp กับธีม photoshop และ keybindings |
| i3 | i3wm |
| i3-gaps | i3wm บนสเตียรอยด์ |
| i3-utils-bin | เครื่องมือสำหรับ i3wm |
| i3-utils-systemd | ไฟล์ systemd สำหรับ i3wm |
| i3blocks-modules | โมดูล i3blocks ที่ยอดเยี่ยม |
| คนโง่ | เครื่องมือบรรทัดคำสั่งการดำเนินการ Kubernetes |
| Kubectl | เครื่องมือบรรทัดคำสั่ง kubernetes |
| libreoffice | LibreOffice 6 พร้อมชุดรูปแบบไอคอน MSOFFICE 2013 |
| LXDM | ผู้จัดการเข้าสู่ระบบ Leight-Weight |
| Neovim | vim บนสเตียรอยด์ |
| ผู้จัดการเครือข่าย | Gnome's Lan และ Wifi Network Manager พร้อมถาดระบบเสริม |
| Oh-my-zsh | กรอบการทำงานที่ขับเคลื่อนด้วยชุมชนที่น่ายินดีสำหรับการจัดการการกำหนดค่า ZSH ของคุณ |
| ผู้บรรจุหีบห่อ | Packer ของ Hashicorp เพื่อสร้างเครื่องจักรอัตโนมัติ |
| ปินต้า | Open Source Paint.net / Mspaint Clone |
| แรนเจอร์ | ตัวจัดการไฟล์บรรทัดคำสั่งที่มีตัวอย่างอินไลน์อิมเมจ (สามารถใช้เป็นตัวจัดการไฟล์ VIM) |
| Skype | Skype repo และแพ็คเกจ |
| ประเสริฐ | repo และแพ็คเกจประเสริฐ |
| sxiv | ตัวแสดงภาพขนาดเล็กเร็วและพึ่งพา |
| ระบบ | จัดการบริการที่เปิดใช้งานปิดใช้งานและสวมหน้ากากระบบ |
| โทรเลข | Telegram Desktop Repo และแพ็คเกจ |
| รูปปั้น | โครงสร้างพื้นฐานของ Hashicorp เป็นผู้จัดเตรียมรหัส |
| สิ่งที่น่าสนใจ | Thunar และข้อกำหนดในการจัดการดิสก์ภายนอกเช่นเดียวกับดิสก์ที่เข้ารหัส |
| thunar-custom-actions | การกระทำที่กำหนดเองของ Thunar |
| ธันเดอร์เบิร์ด | Thunderbird และ Add-ons ที่กำหนดไว้ทั่วโลก |
| ไทม์มิเชน | OSX ชอบ timemachine สำหรับบรรทัดคำสั่ง |
| urxvt | ขนาดเล็ก, เร็วและ leight-weight 256 unicode terminal emulator |
| กล่องเสมือนจริง | VirtualBox ต้นน้ำและแพ็คเกจ |
| xbacklight | การเปลี่ยนการเปลี่ยน Cross-GPU XBACKLIGHT ที่ทันสมัย |
| XDG-Mime-Meta | กำหนดแอปพลิเคชันเริ่มต้นสำหรับ XDG-Open |
| Xorg | Xorg และการพึ่งพารวมถึงการกำหนดค่า GPU และทัชแพด |
| ซานีร์รา | ผู้ชม PDF ขนาดเล็กเร็วและพึ่งพาอาศัยกัน |
| เครื่องมือ | คำอธิบาย |
|---|---|
| Font-Droid-Sans-Mono | Droidsansmono nerdfont ที่มีสัญลักษณ์และสัญลักษณ์ Unicode มากมาย |
| แบบฟอนต์ | Fontawesome เป็นตัวอักษรระบบ |
| Font-San-Francisco | OSX Yosemite San Francisco Font |
| แบบฟอนต์ | เทอร์มินัส nerdfont ที่มีสัญลักษณ์ glyphcs และ unicode จำนวนมาก |
| ฟอนต์-ubuntu | แบบอักษรอย่างเป็นทางการของ Ubuntu |
| ไอคอน-โมก้า | ชุดรูปแบบไอคอน Moka (สำหรับ Thunar หรือ Nautilus) |
| ธีม-อาร์ค | ชุดรูปแบบอาร์คสำหรับ GTK2, GTK3, Chrome และอื่น ๆ |
ดูบทบาท/ ไดเรกทอรีสำหรับแพ็คเกจที่มีอยู่ทั้งหมด หากคุณขาดหายไปให้เปิดปัญหาหรือคำขอดึง
นอกจากนี้คุณสามารถ (แต่ไม่จำเป็นต้อง) จัดการสิ่งต่อไปนี้:
เพื่อปรับแต่งเวิร์กสเตชันหรือโครงสร้างพื้นฐาน Debian ของคุณคุณสามารถสร้างโปรไฟล์สำหรับเครื่องแต่ละเครื่องของคุณ สิ่งนี้อาจจำเป็นเนื่องจากการตั้งค่าฮาร์ดแวร์หรือซอฟต์แวร์ที่แตกต่างกัน ชื่อโฮสต์ แต่ละตัว (ของจริงหรือสร้างขึ้น) ในไฟล์สินค้าคงคลังแสดงถึง โปรไฟล์ หนึ่งโดยอัตโนมัติ
โดยวิธีการทำงานของ Ansible แต่ละโปรไฟล์สืบทอดการตั้งค่าทั้งหมดจาก group_vars/all.yml ไฟล์นี้ถือเป็นค่าเริ่มต้นที่มีสติแสดงให้คุณเห็นตัวเลือกที่มีอยู่ทั้งหมดและด้วยแพ็คเกจทั้งหมดที่ไม่มีการจัดการ
ในการ ปรับแต่งโปรไฟล์ของคุณ จริงคุณจะต้องสร้างไฟล์ใน host_vars/ ด้วยชื่อเดียวกับที่คุณระบุไว้ในสินค้าคงคลัง คุณสามารถคัดลอก group_vars/all.yml โดยตรงหรือใช้โปรไฟล์ที่มีอยู่แล้วจาก host_vars เช่น host_vars/generic-all.yml
เพื่อให้เข้าใจวิธีการทำงานได้ดีขึ้นคุณสามารถติดตามตัวอย่างทีละขั้นตอนนี้สำหรับการสร้างโปรไฟล์ใหม่:
เพื่อประโยชน์ของตัวอย่างนี้สมมติว่าโปรไฟล์ของคุณเรียกว่า 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 เพื่อดูว่าทุกอย่างทำงานได้ตามที่คาดไว้หรือไม่ สิ่งนี้อาจมีประโยชน์มากในกรณีที่คุณกำลังสร้างบทบาทใหม่และต้องการดูว่ามันใช้งานได้หรือไม่
หมายเหตุ: อิมเมจนักเทียบท่าจะเป็นการสร้างอัตโนมัติก่อนที่จะทำการทดสอบ
ก่อนที่จะเรียกใช้คุณควรระวังข้อโต้แย้งสองสามข้อที่สามารถนำไปใช้กับคำสั่ง make ดูตารางด้านล่าง:
| ตัวแปร | ที่จำเป็น | คำอธิบาย |
|---|---|---|
PROFILE | ใช่ | ชื่อโฮสต์สินค้าคงคลัง (โปรไฟล์ของคุณ) |
VERBOSE | เลขที่ | คำพยากรณ์ ANSIBLE ค่าที่ถูกต้อง: 0 , 1 , 2 หรือ 3 |
ROLE | เลขที่ | เรียกใช้แท็กเฉพาะนี้เท่านั้น (ชื่อบทบาท) |
เรียกใช้การทดสอบเต็มรูปแบบของโปรไฟล์ generic-all :
make test-docker-full PROFILE=generic-all เรียกใช้การทดสอบเต็มรูปแบบของโปรไฟล์ generic-all ตามลำดับแบบสุ่ม:
make test-docker-random PROFILE=generic-all ใช้บทบาท i3-gaps เฉพาะในโปรไฟล์ generic-all
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
... หรือเพื่อตั้ง ค่า DPI และตัวเลือกอื่น ๆ สำหรับ lxdm
$ 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 สำหรับการปฏิบัติที่ดีที่สุดที่จำเป็น
ใบอนุญาต MIT
ลิขสิทธิ์ (c) 2017 Cytopia