Ansible 자동화 데스크탑 사용
우선, 나는 네가 잘하기를 바란다😊.
나의 노트북 설정에 대해 이야기할 때, 나의 관심은 내가 기계 사이의 설정을 너무 많이 고려할 필요가 없다는 것이다.특히 내가 직접 일하고 게임하고 싶을 때.
따라서 모든 기계에 같은 기본 설정(외관, 느낌, 키보드 단축키, 핵심 소프트웨어 등)을 가지고 있는 것은 나에게 매우 편안하다.
인프라 시설이 코드로서의 개념을 알게 되었을 때, 나는 내 데스크톱에서 그것을 시도하는 것이 재미있는 학습 체험이 될 것이라고 생각한다.
여기는 제 이야기입니다. 데스크톱 설정을 설정하고 유지하는 데 도움을 주는 방법을 발견했습니다.
Ansible 초보자: 진정한 실패자 이야기
지원되는 Ubuntu LTS 버전
There are no plans to ensure non-LTS versions are supported.
Software support is LTS version dependent.
왜 이 스크립트를 작성합니까?
이러한 변경은 오래 걸리지 않지만, 스크립트 검사를 하고 원하는 방식으로 설정할 수 있으며, 원하는 상태와 다르면 변경할 수 있다고 단언할 수 있습니다.
내가 왜 이 길을 가는지 예를 들어 봅시다.
GNOME 설정 및 구성
GNOME 조정 도구를 설치한 적이 있다면, 일부 설정에 접근했습니다.설정 프로그램은 그 중 일부 설정을 공개했다.
계층형 구성 설정
- name: GNOME Preferences - Shell - Attach Modal Dialogues
dconf:
key: "/org/gnome/shell/overrides/attach-modal-dialogs"
value: "false"
state: present
- name: GNOME Preferences - Nautilus - Clock Format
dconf:
key: "/org/gnome/desktop/interface/clock-format"
value: "'24h'"
state: present
위의 두 작업은 응용 프로그램 이동 모드와 독립적으로 대화할 수 있으며, 대화상자 뒤에 있는 내용을 볼 수 있으며, 시계를 24시간으로 변경할 수 있습니다.이러한 설정을 관리하는 기본 도구는
dconf
및 gsettings
입니다.dconf-editor
은 이러한 항목을 편집하는 데 사용되는 그래픽 응용 프로그램입니다.gsettings
은 명령줄에서 항목 모드를 가져오고 설정하며 조회하는 방법이다.두 Ansible 작업은
dconf
을 사용하여 키당 값을 설정합니다.state: present
로고는 ansible에 키/값이 시스템에 나타나기를 희망한다고 알려 줍니다.그리고 소스 코드 제어를 설정할 수 있는
핵심 소프트웨어
이것은 완전히 Ansible 역할의 목록이 아닙니다.
다음은 소프트웨어 설치 목록입니다.
ansible
, cherrytree
(OneNote for Linux) Breaktimer,
Visual Studio Code
, kite AI Autocompletion and Docs for Python, 로컬 운행
VSCodium,
carbon-cli
내 코드의 아름다운 이미지 - 내 단말기에
Chromium
, docker
, docker-compose
, Flameshot,
gsettings
, Firefox
, Flatpak
, gh
GitHub CLI Nordvpn
, nodejs
, Peek 애니메이션 GIF 스크린 레코더,
API 테스트용 Postman,
Protonmail-bridge
https://protonmail.com/bridge/install , python3.6
, python3.7
, python3.8
, Signal Desktop
, Slack
, Snap
, Spotify
, Stacer
https://github.com/oguzhaninan/Stacer , Standard Notes
, Steam
, Sublime Text
, Telegram
, TickTick
사용 nativefier, Timeshift
https://github.com/teejee2008/timeshift , Tresorit
, yarn
, zsh
Makefile 도움말
기존 Ansible 역할이나 스크립트를 실행하는 데 Makefiles를 사용하여 구성을 편집하거나 업데이트하는 것이 더 쉽습니다.
자세한 내용
당신이make목표의 더 많은 세부 사항을 이해하기 위해서, 다음은 제가 본문을 작성할 때의
group_vars/all.yml
파일입니다.이 파일은playbook을 실행하고자 하는 모든 호스트에 전역 변수를 설정합니다.나의 예에서, 이것은 통상적으로 현지 기계일 뿐이다.
---
docker_compose_version: 1.25.4
flameshot_version: 0.6.0
flatpak_applications:
- "com.uploadedlobster.peek"
# - "com.github.alainm23.planner" # not used
- "com.valvesoftware.Steam"
- "org.gnome.Evolution"
- "ch.protonmail.protonmail-bridge"
- "org.libreoffice.LibreOffice"
gh_version: 0.7.0
jetbrains_mono_version: 1.0.3
protonmail_bridge_version: 1.2.6-1
nodejs_version: "12.x"
nodejs_yarn_global_packages:
- name: "@vue/cli"
- name: "@gridsome/cli"
- name: "nativefier"
- name: "markdownlint-cli"
- name: "carbon-now-cli"
snaps_chat:
- "signal-desktop"
- "telegram-desktop"
snaps_chat_classic:
- "slack"
snaps_common:
- "snap-store"
- "breaktimer"
- "cherrytree"
- "drawio"
# https://github.com/jgraph/drawio-desktop/issues/138,
# snap 12.6.5 > flatpak 12.4 (as of 2020-02-28)
- "spotify"
- "ncspot"
- "standard-notes"
snaps_development:
- "postman"
snaps_development_classic:
- "code"
# - "codium" # Code without telemetry
- "sublime-text"
snaps_web_browsers:
- "chromium"
- "firefox"
snaps_web_browsers_plugs:
- plug: "home"
app: "chromium"
code_extensions:
## Ansible
- vscoss.vscode-ansible
## Docker and Remote Development
- ms-azuretools.vscode-docker
- ms-vscode-remote.remote-containers
- ms-vscode-remote.remote-ssh
- ms-vscode-remote.remote-ssh-edit
# - ms-vscode-remote.remote-wsl
- ms-vscode-remote.vscode-remote-extensionpack
## General Development
- christian-kohler.path-intellisense
- vscode-icons-team.vscode-icons
- riccardoNovaglia.missinglineendoffile
- shardulm94.trailing-spaces
# - Shan.code-settings-sync
## Git Utilities
- eamodio.gitlens
- donjayamanne.githistory
## Markdown Linting
- DavidAnson.vscode-markdownlint
## Python Development
- ms-python.python
- himanoa.Python-autopep8
- njpwerner.autodocstring
- wholroyd.jinja
# Pyright Attribution to tiangolo and florimondmanca
# https://twitter.com/tiangolo/status/1252891149708275713?s=21
# > Disabled type checking in the extension settings as I rely on mypy,
# > but autoimport and unused import colouring alone make it a
# > 100% worthwhile companion on VSCode
- ms-pyright.pyright
## Spellchecking
- streetsidesoftware.code-spell-checker
## Travis-CI
# - felixrieseberg.vsc-travis-ci-status # has issues with status resolution
## Vue.js Development
- octref.vetur
- dbaeumer.vscode-eslint
- pranaygp.vscode-css-peek
## YAML
- redhat.vscode-yaml # doesn't allow hostname in .travis.yml
stacer_version: 1.1.0
zsh_theme: robbyrussell
zsh_plugins:
- ansible
- aws
- docker
- docker-compose
- git
- pipenv
기존 기계
기존 시스템에서의 내 프로세스를 확인하려면
https://ansible-desktop.iancleary.me/makefile .
새 기계 설정
새 기계에 대해 나는 다음과 같은 명령을 실행한다
내 컴퓨터를 설정하려면:
I like to do this during the initial configuration of the machine.
wget -qO- \
https://github.com/iancleary/ansible-desktop/raw/main/run.sh | \
bash
sudo
암호를 입력하라는 메시지가 표시됩니다.bash 스크립트에 사용하고 나중에
ansible
의 암호가 됨 프롬프트입니다.봐라!🎉🎉🎉
사용자 정의
변수를 편집하려면
CTRL + C
의 암호 만들기 프롬프트에서 ansible
을 클릭합니다.이 스크립트는
ansible-playbook
이 호스트 이름에 나타날 수 있도록 두 개의 추가 파일을 만들었습니다.Note: Both files are intentionally not version controlled.
This allows hostname specific group_vars relative to the playbook.
.inventory
파일#.inventory
[$(hostname)]
127.0.0.1
# group_vars/$(hostname)/all.yml
--------
# You can copy and modify variables over from ../all.yml
make all
을 실행합니다.봐라!🚀🚀🚀
문서
자세한 내용은 Netlify에서 관리합니다. 전화: https://ansible-desktop.iancleary.me.
감사합니다.
나는 네가 나의 데스크톱 설정을 읽는 것을 좋아하고 수시로 사용하거나 수정하거나 공유하기를 바란다.
iancleary/ansible-desktop/은 GitHub에 있고 GPL-3.0의 허가를 받았습니다.
하면, 만약, 만약...⭐ 만약 당신에게 무슨 문제가 있으면 저에게 알려주세요!
Especially if you a suggestion for cool application or piece of software you use 😎😎😎.
건배!
이안
편집: 기본 브랜치를
master
에서 main
으로 변경
Reference
이 문제에 관하여(Ansible 자동화 데스크탑 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/iancleary/automating-your-desktop-with-ansible-20jk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)