언제나 어디에다가 적어두는 (매번 컨플루언스나 노션에다 적어두다가 .. 공유해두지만.. 매번 업데이트 하는 그런류.. 그렇지만.. 생각외로 이렇게 하드코어적으로 쓰는 사람이 없다라는 것도 놀람의 연속..)
추가적으로 brew 만 잘 사용해도 어마어마하고 또한 최근 1~2년 전부터 떠오르는 https://fig.io 도 참고할만한 곳이기도 하다.. (아직까진 맥 환경에만 주력하는 것 같은데.. 리눅스나. 윈도우 환경에도 지원하려는 듯 하니. 지원하면 설치해서 사용하면 좋을 듯 하다..)
필자는 맥환경을 기준으로 기입을 하나 Ubuntu 환경에서도 유사하게 사용이 가능하니 (참고로 필자의 별도의 개인 서버인 Ubuntu 서버에서 apt 로 유사하게 설치해서 사용중이다.)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
또는
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
brew install zplug
https://gwangyi.github.io/posts/introduce-zplug/
# 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
brew install terragrunt
# 위의 설치후 cache를 디렉토리 별로 생성하지 않도록 환경변수 등록
export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"
export TERRAGRUNT_DOWNLOAD="$HOME/.terragrunt/plugin-cache"
brew install lsd
brew install rbenv
rbenv init
rbenv install 2.7.2
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
# 설치
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
# macOS pkg 파일 다운로드
<https://awscli.amazonaws.com/AWSCLIV2.pkg>
brew install kubectl
brew install tmux
brew install --cask sublime-text
https://github.com/tmichel/sublime-terraform
brew install k9s
brew install --cask openlens
brew install kubectx
brew install kubens
brew install kube-ps1
brew install aws-iam-authenticator
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
cd ~
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.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 " 태그 데이터 베이스를 이진으로 검사