/cybercore

My dev.environments and system configurations (macOS, ruby, js, python, dotfiles, zsh, vim, sublime, fonts, etc). Powered by Ansible 💖

Primary LanguageShell

cybercore

My development environments and system configurations (macOS Sonoma).

ansible@8.4.0 [core 2.15.4] / Java@21 / XCode@15.0

macOS Sonoma (14.2.1)


! Check PREINSTALLATION_REQUIREMENTS.md first!


  • ruby (3.3.4) / truffleruby (23.1.1)
  • k8s / minikube (latest@homebrew) (?)
  • rust (1.72.1)
  • python (3.11.5)
  • nodejs (latest@nvm) (20.8.0) (01.10.2023)
  • elixir (1.15.6) / erlang (26.1)
  • scala (latest@homebrew) (3.3.1) (01.10.2023)
  • php (latest@homebrew) (8.3.1) (17.10.2023)
  • postgresql (16.0)
  • clickhouse (23.5)
  • memcached (latest@homebrew) (1.6.22) (17.10.2023)
  • redis (latest@homebrew) (7.2.3) (17.10.2023)
  • rabbitmq (latest@homebrew) (3.12.11) (17.10.2023)
  • kafka (latest@homebrew) (3.6.1) (17.10.2023)
  • influxdb (latest@homebrew) (2.7.3) (17.01.2024)
  • telegraf (latest@homebrew) (1.29.1) (17.01.2024)
  • neo4j (latest@homebrew) (5.13.0) (17.01.2024)
  • etcd (latest@homebrew) (3.5.11) (17.01.2024)
  • vault (latest@homebrew) (1.15.4) (17.01.2024)

Macbook Setup

(ansible) macOS roles:

  • macos_config - apply basic macOS configs;
  • macos_databases - setup databases (PostgreSQL, Memcached, Redis, ClickHouse, InfluxDB, and Vault);
  • macos_kubernetes_env - setup K8S environment;
  • macos_pyton_env - setup Python environment;
  • macos_js_env - setup JavaScript environment;
  • macos_ruby_env - setup Ruby environment;
  • macos_rust_env - setup Rust environment;
  • macos_elixir_env - setup Elixir environment;
  • macos_scala_env - setup Scala environment;
  • macos_php_env - setup PHP environment;
  • macos_soft - install neccessary sofwtare;
  • macos_post_config - apply post macOS configs (copy dotfiles, setup system fonts, clone projects, etc);

(ansible) setup macOS:

ansible-playbook macbook_setup.yml -vvv

Daily Tasks

ansible-playbook macbook_daily.yml --list-tasks

Environment

  • actualzie dotfiles (update-dots):
    ansible-playbook macbook_daily.yml --tags update_dotfiles
  • actualize custom fonts (update-fonts):
    ansible-playbook macbook_daily.yml --tags update_fonts
  • actualize solargraph (update-solargraph):
    ansible-playbook macbook_daily.yml --tags update_solargraph
  • update spaceship-prompt (update-prompt):
    ansible-playbook macbook_daily.yml --tags update_spaceship
  • update language environments (update-langs):
    ansible-playbook macbook_daily.yml --tags update_languages
  • update ruby gems (update-gems):
    ansible-playbook macbook_daily.yml --tags update_ruby_gems
  • update k8s env (update-k8s, update-kubernetes):
    ansible-playbook macbook_daily.yml --tags update_k8s
  • update databases (update-databases, update-dbs):
    ansible-playbook macbook_daily.yml --tags update_databases

Programming languages

  • update rbenv (update-rbenv):
    ansible-playbook macbook_daily.yml --tags update_rbenv
  • update pyenv (update-pyenv):
    ansible-playbook macbook_daily.yml --tags update_pyenv
  • update rust (update-rust):
    ansible-playbook macbook_daily.yml --tags update_rust
  • update js (updates nvm, node and yarn) (update-js):
    ansible-playbook macbook_daily.yml --tags update_js
  • update elixir (update-elixir):
    ansible-playbook macbook_daily.yml --tags update_elixir
  • update scala (updates scala, sbt and amonite-repl) (update-scala):
    ansible-playbook macbook_daily.yml --tags update_scala
  • update php (update-php):
    ansible-playbook macbook_daily.yml --tags update_php

Software

  • update soft (update-soft):
    ansible-playbook macbook_daily.yml --tags update_soft

Additional instructions


Crazy Tips

  • open dahsdoc documentation about Ruby's attr_reader or Kernel module:
  rubydash attr_reader
  rubydash Kernel
  • open dashdoc documentation for Docker:
  dashdoc docker:
  • tranlsate any text (copy any text to a clipboard and type trs in console shell):
daiver => ~/Projects
➜ trs
Sorbet - это быстрый и мощный тип проверки, разработанный для Ruby.
daiver => ~/Projects
➜

(CI) Build Script

pip3 install -r requirements.txt
yamllint --strict $(git ls-files '*.yaml' '*.yml')
ansible-lint *.yml

TODO:

  • workflow for installatoin of all necessary gems and javascript libs;
  • migrate to Github Actions CI;
  • macbook.user as a customizable runtime setting;
  • clone ohmyzsh and ohmyzsh-related plugins to my repository;
  • clone sublime packages (and use Package Control: Satisfy Dependencies);
  • ruby gemlist with auotmated instalation and updates;
  • js package list with automated installation and updates;