Ansible 자동화 데스크탑 사용

안녕하십니까?
우선, 나는 네가 잘하기를 바란다😊.
나의 노트북 설정에 대해 이야기할 때, 나의 관심은 내가 기계 사이의 설정을 너무 많이 고려할 필요가 없다는 것이다.특히 내가 직접 일하고 게임하고 싶을 때.
따라서 모든 기계에 같은 기본 설정(외관, 느낌, 키보드 단축키, 핵심 소프트웨어 등)을 가지고 있는 것은 나에게 매우 편안하다.
인프라 시설이 코드로서의 개념을 알게 되었을 때, 나는 내 데스크톱에서 그것을 시도하는 것이 재미있는 학습 체험이 될 것이라고 생각한다.
여기는 제 이야기입니다. 데스크톱 설정을 설정하고 유지하는 데 도움을 주는 방법을 발견했습니다.

Ansible 초보자: 진정한 실패자 이야기

  • 인터넷에서 멋진 bash 스크립트를 찾았어요.🤷
  • 쿠바시 스크립트를 수정했습니다. 쿠바시 스크립트는 제 필요에 따라 작동합니다!🚀
  • 저는 Makefiles를 배웠습니다.😄
  • 저는 Makefiles로 모든 일을 하기 시작했습니다.🤩🤩🤩
  • 나는 연속적인 Make 목표를 한 번 또 한 번 실행하는 것에 싫증이 났다😐.
  • 저는 업무 중에 Ansible를 사용하고 한 과목에 참가하여 더 많은 것을 이해하기로 결정했습니다.🤓
  • Ansible 사용의 실제 시도를 미뤘습니다.🕒🕕🕘🕛
  • Ansible로 구성하기로 최종 결정했습니다.✔️
  • 지원되는 Ubuntu LTS 버전

  • Ubuntu 18.04
  • Ubuntu 20.04
  • 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시간으로 변경할 수 있습니다.
    이러한 설정을 관리하는 기본 도구는 dconfgsettings입니다.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,
  • 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
    
  • a group\u vars 파일
  • # 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으로 변경

    좋은 웹페이지 즐겨찾기