언제나 어디에다가 적어두는 (매번 컨플루언스나 노션에다 적어두다가 .. 공유해두지만.. 매번 업데이트 하는 그런류.. 그렇지만.. 생각외로 이렇게 하드코어적으로 쓰는 사람이 없다라는 것도 놀람의 연속..)

추가적으로 brew 만 잘 사용해도 어마어마하고 또한 최근 1~2년 전부터 떠오르는 https://fig.io 도 참고할만한 곳이기도 하다.. (아직까진 맥 환경에만 주력하는 것 같은데.. 리눅스나. 윈도우 환경에도 지원하려는 듯 하니. 지원하면 설치해서 사용하면 좋을 듯 하다..)

필자는 맥환경을 기준으로 기입을 하나 Ubuntu 환경에서도 유사하게 사용이 가능하니 (참고로 필자의 별도의 개인 서버인 Ubuntu 서버에서 apt 로 유사하게 설치해서 사용중이다.)

Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

oh-my-zsh

sh -c "$(curl -fsSL <https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh>)"

zplug

brew install zplug

https://gwangyi.github.io/posts/introduce-zplug/

Terraform (tfenv 을 통해 설치)

# tfenv 설치
brew install tfenv

# 설치 가능 버전 목록 확인
tfenv list-remote

# 특정 버전 설치
tfenv install 1.4.6

# 최신 버전 설치
tfenv install latest

# 테라폼 파일 분석후 최소 요구 버전 설치
tfenv install min-required

# .terraform-version에 지정된 버전 설치
terraform install

# 설치된 테라폼 버전 확인
tfenv list

# 특정 버전 사용
tfenv use 1.4.6

# 최신 버전 사용
tfenv use latest

#######################
# Apple Silicon (M1/M2)
# <https://discuss.hashicorp.com/t/template-v2-2-0-does-not-have-a-package-available-mac-m1/35099/17>
#######################
brew install tfenv
TFENV_ARCH=amd64 tfenv install 1.0.9 # specifying the arch to be amd64 worked
tfenv use 1.0.9

Terragrunt 설치

Terragrunt???

  • 테라폼 소스코드를 DRY(Don't Repeat Yourself) 하게 만들어주는 툴
  • DRY 란 프로그래밍을 할때 반복작업을 하지 않는 것
brew install terragrunt
# 위의 설치후 cache를 디렉토리 별로 생성하지 않도록 환경변수 등록

export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"
export TERRAGRUNT_DOWNLOAD="$HOME/.terragrunt/plugin-cache"

lsd (차세대 ls)

brew install lsd

ruby(rbenv)

  • eclair 사용을 위해 설치 진행
brew install rbenv

rbenv init

rbenv install 2.7.2

java( jenv)

brew install jenv

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc

jenv enable-plugin export

brew tap homebrew/cask-versions

brew tap adoptopenjdk/openjdk

sudo softwareupdate --install-rosetta

brew install --cask adoptopenjdk/openjdk/adoptopenjdk8

brew install --cask adoptopenjdk/openjdk/adoptopenjdk11

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/

jenv versions

jenv global 11.0.11

java -version

Python3 (pyenv)

# 설치
brew install pyenv

# 설치가능한 버전 찾기
pyenv install --list

# 현 시점 최신버전 3.11.3 설치
pyenv install 3.11.3

# 설치되어 있는 버전 확인
pyenv versions

# 글로벌 버전에 설정
pyenv global 3.11.3

# 로컬 버전에 설정
pyenv local 3.11.3

AWS CLI2

# macOS pkg 파일 다운로드
<https://awscli.amazonaws.com/AWSCLIV2.pkg>

kubectl

brew install kubectl

tmux 설치

brew install tmux

SublimeText

brew install --cask sublime-text

설치 후 Terraform Syntax Highlight 기능은 별도 설치 필요하므로 아래의 URL 에서 참고 하여 설치 진행

https://github.com/tmichel/sublime-terraform

K9S

brew install k9s

OpenLens

brew install --cask openlens

kubectx

brew install kubectx

kubens

brew install kubens

kube-ps1

brew install kube-ps1

aws-iam-authenticator

brew install aws-iam-authenticator

MesloLGS Font

.zshrc

  • 위치 : cd ~ 로 이동
export ZSH=~/.oh-my-zsh

##################
# ZPLUG LOAD
##################
export ZPLUG_HOME=/opt/homebrew/opt/zplug
source $ZPLUG_HOME/init.zsh

##################
# ZPLUG START
##################
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-history-substring-search"
zplug "zsh-users/zsh-syntax-highlighting"
zplug "robbyrussell/oh-my-zsh", use:"lib/*.zsh"
zplug "plugins/git", from:oh-my-zsh
zplug "plugins/osx", from:oh-my-zsh, if:"[[ $OSTYPE == *darwin* ]]"
zplug "plugins/zsh_reload", from:oh-my-zsh
zplug "plugins/colorize", from:oh-my-zsh
zplug "pbar1/zsh-terraform"

##############
# ZSH THEME 
##############
zplug 'dracula/zsh', as:theme

# install & load
zplug check || zplug install
zplug load

source $ZSH/oh-my-zsh.sh

# vi to vim
alias vi=vim
# vim 관련 추가 설정은 따로 진행

# jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

# ruby init
[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

# alias to lsd
alias ls='lsd'
alias ll='ls -alhF'

# alias to Terrafrom
alias tf=terraform
alias tfw="terraform workspace"

tfv(){
  terraform validate -var-file=vars/$(terraform workspace show).tfvars
}

tfp(){
  terraform plan -var-file=vars/$(terraform workspace show).tfvars
}

tfa(){
  terraform apply -var-file=vars/$(terraform workspace show).tfvars
}

tfc(){
  terraform console -var-file=vars/$(terraform workspace show).tfvars
}

# kubectl auto completion
source <(kubectl completion zsh)

# kubectl - k alias
alias k=kubectl
compdef __start_kubectl k

# kube_ps1
source "$(brew --prefix)/opt/kube-ps1/share/kube-ps1.sh"
PS1='$(kube_ps1)'$PS1

# terraform
autoload -U +X bashcompinit && bashcompinit

# tfenv
export TFENV_VERSION=$(tfenv --version)
export TF_VERSION=$(terraform --version)
complete -o nospace -C /usr/local/bin/terraform terraform
  • 보면 알겠지만 powerlevel10k 의 테마 등을 배제 하고 있다.
  • 위의 테마를 사용하게 되면 쿠베 컨텍스트 확인 하는 기능 하는 kube_ps1이 정상적으로 화면에서 출력되지 않아 가장 정상적이고 보기에 좋은 dracula/zsh 로 적용하였음.

vi/vim editor 설정(?)

1. Vundle 설치

  • vundle은 vim의 플러그인을 관리하는 플러그인 매니저
cd ~

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2. ~/.vimrc 파일 수정

  • vim 의 전반적인 설정 정보가 여기에 들어가게 됩니다.
set nocompatible
filetype off

" for Vundle -----------------------------------------
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin),
"Plugin 'file:///home/jjeaby/Dev/tools/vim-plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}
" All of your Plugins must be added before the following line
Plugin 'matchparenpp' " 괄호 확인
Plugin 'townk/vim-autoclose' " 자동 괄호 닫힘
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'http://github.com/tomasr/molokai'  " colorscheme
Plugin 'scrooloose/nerdtree'
Plugin 'airblade/vim-gitgutter'
Plugin 'scrooloose/syntastic' " 문법검사 ******** 이게 검사 플러그인 입니다.
Plugin 'ctrlpvim/ctrlp.vim'

Plugin 'hashivim/vim-terraform' " 테라폼 관련 플러그인 #1 
Plugin 'juliosueiras/vim-terraform-completion' " 테라폼 관련 플러그인 #2

call vundle#end() " required
" end of Vundle -------------------------------------

" vim 기본 설정 영역
filetype plugin indent on

"NERDTree ON 단축키를 "\nt"로 설정
map nt :NERDTree
let NERDTreeShowHidden=1
" let NERDTreeQuitOnOpen=1
let g:ctrlp_custom_ignore = {
\ 'dir': '\.git$\|vendor$',
\ 'file': '\v\.(exe|so|dll)$'
\ }

" colorscheme jellybeans " 컬러 스킴 설정.(plugin 설치 필요)
colorscheme molokai
filetype on "vim filetype on

" Syntax 지원
if has("syntax")
syntax on
endif

set backspace=indent,eol,start " 맥 vi 백스페이스

set encoding=utf-8 " encoding 설정
set fileencodings=utf-8,cp949,default,latin1
set termencoding=utf-8

" set printencoding=utf-8 " 인쇄 encoding 옵션
" set printmbcharset=ISO10646
" set printmbfont=r:NanumGothiccoding,c:yes,a:yes
set number " 좌측 라인 넘버 표시
set numberwidth=6 " 넘버 표시 공간의 너비

set title " 하단 편집 문서의 이름 표시
set ruler " 하단부에 현재 커서의 위치를 표시

set shiftwidth=4 " 들여쓰기 간격
set tabstop=4 " tab 간격

set cindent
set autoindent " 자동 들여쓰기
set smartindent

set hlsearch " 검색 결과 강조
set incsearch " 증가 방향으로 검색
set nowrapscan " 검색 시 파일 끝에서 되돌려 검색하지 않게
set ignorecase " 검색 시 대소문자 구분하지 않음

set nowrap " 자동 줄 바꿈 사용하지 않음

set autowrite " 자동 저장
set autoread

" set paste " 붙여 넣기 시 계단현상 방지
set showmatch " 커서 위치 시 괄호의 끝 혹은 시작을 반전으로 표시

" for vim-airline
let g:airline#extensions#tabline#enabled = 1 " turn on buffer list
let g:airline_theme='hybrid'
set laststatus=2 " turn on bottom bar

set tagbsearch " 태그 데이터 베이스를 이진으로 검사
  • :wq 를 눌러 저장했다가
  • 다시 들어와서
  • :PluginInstall로 플러그인들을 설치

추가 설치 플러그인은 아래에서 찾아서 설치 진행

profile
귀찮아하지말고 계속 정리하고 공부하자

0개의 댓글