- ã¯ããã«
- ç°å¢æ å ±
- åæè¨å®
- Git, GitHubã®è¨å®
- ã¢ããªéçºã§å½¹ã«ç«ã¤ãã¼ã«ã®ã¤ã³ã¹ãã¼ã«
- Node.js, Rubyã®ã¤ã³ã¹ãã¼ã«
- docker composeã§PostgreSQLãèµ·å
- ãããã«
ã¯ããã«
ããã«ã¡ã¯ããµã¼ãã¹éçºèª²ã®è¡æ¦ã§ãã
ä»åã¯ãRailsã¢ããªéçºç¨ã®EC2ã¤ã³ã¹ã¿ã³ã¹ï¼Amazon Linux 2023ï¼ã«åæè¨å®ãããã¨ãã®æé ãåå¿é²ã¨ãã¦ã¾ã¨ãã¦ã¿ã¾ãã
æ¬è¨äºããªã«ãã®åèã«ãªãã°å¹¸ãã§ãã
ãååã®è¨äºã
ç°å¢æ å ±
æ¬è¨äºã¯ã以ä¸ã®ç°å¢ã§åä½ã確èªãã¾ããã
ç°å¢æ å ± | ãã¼ã¸ã§ã³ |
---|---|
OSï¼ãªã¢ã¼ãï¼ | Amazon Linux 2023 |
åæè¨å®
ååã®è¨äºã®å 容ã§ãVS Codeã®Remote SSHã§éçºç¨EC2ã¤ã³ã¹ã¿ã³ã¹ï¼Amazon Linux 2023ï¼ã«SSHæ¥ç¶ã§ããã¨ããã¾ã§é²ãã¾ããã
ä»åã¯SSHæ¥ç¶å¾ãã¿ã¼ããã«ã§éçºç°å¢ã®åæè¨å®ãè¡ãã¾ãã
VS Codeã®ã¿ã¼ããã«ã¯ãâ + jããåæã«æ¼ããã¨ã§éãã¾ãã
ï¼Windowsã®å ´åã¯ãctrl + jãï¼
åºæ¬çãªã©ã¤ãã©ãªã®ã¤ã³ã¹ãã¼ã«
ã¿ã¼ããã«ã§ä»¥ä¸ã®ã³ãã³ããå®è¡ãã¾ãã
sudo dnf update -y
sudo dnf install -y zsh git gcc make zlib-devel libxml2-devel libxslt-devel readline-devel openssl-devel gcc-c++ curl-devel wget bzip2 bind-utils fontforge libffi-devel libX11 util-linux-user libyaml-devel gdbm-devel ncurses-devel patch rust perl libpq-devel postgresql15
ã¿ã¤ã ã¾ã¼ã³ã®è¨å®
以ä¸ã®ã³ãã³ããå®è¡ããã¿ã¤ã ã¾ã¼ã³ãæ±äº¬ã«è¨å®ãã¾ãã
sudo timedatectl set-timezone Asia/Tokyo
ã·ã§ã«ï¼zshï¼ã®è¨å®
https://github.com/zsh-users/zsh
以ä¸ã®ã³ãã³ããå®è¡ããVimã§zshã®è¨å®ãã¡ã¤ã« ~/.zshrc
ãéãã¾ãã
vim ~/.zshrc
åºæ¬çãªè¨å®å 容ãå ¥åãã¾ãã
i
ãæ¼ãã¦ãVimã®æ¿å ¥ã¢ã¼ãã«å¤æ´ãã¾ãã- 以ä¸ã®å 容ãã³ãããã¾ãã
- ãã¼ãåå
¥åã®ç¶æ
ã§
Esc
ãæ¼ãã:wq
ã¨å ¥åãã¦ä¿åãã¾ãã
# .zshrc # è²ã使ç¨åºæ¥ãããã«ãã autoload -Uz colors colors # æ¥æ¬èªãã¡ã¤ã«åã表示å¯è½ã«ãã setopt print_eight_bit # cdãªãã§ãã£ã¬ã¯ããªç§»å setopt auto_cd # ãã¼ãé³ã®åæ¢ setopt no_beep # ãã¼ãé³ã®åæ¢(è£å®æ) setopt nolistbeep # cd -<tab>ã§ä»¥åç§»åãããã£ã¬ã¯ããªã表示 setopt auto_pushd # ãã¹ããª(å±¥æ´)ãä¿åãæ°ãå¢ãã HISTFILE=~/.zsh_history HISTSIZE=100000 SAVEHIST=100000 # åæã«èµ·åããzshã®éã§ãã¹ããªãå ±æãã setopt share_history # ç´åã¨åãã³ãã³ãã®å ´åã¯å±¥æ´ã«è¿½å ããªã setopt hist_ignore_dups # åãã³ãã³ãããã¹ããªã«æ®ããªã setopt hist_ignore_all_dups # ã¹ãã¼ã¹ããå§ã¾ãã³ãã³ãè¡ã¯ãã¹ããªã«æ®ããªã setopt hist_ignore_space # è£å®ãªã¹ãã®è¡¨ç¤ºééãçããã setopt list_packed #åèªã®å ¥åéä¸ã§ãTabè£å®ãæå¹å setopt complete_in_word # 追å ããããã±ã¼ã¸ç¨ã«ãã¹ãéã export PATH=/usr/local/bin:$PATH export PATH=$HOME/bin:$PATH
ããã©ã«ãã·ã§ã«ã®è¨å®
以ä¸ã®ã³ãã³ããå®è¡ããããã©ã«ãã·ã§ã«ãzshã«è¨å®ããã
sudo chsh ec2-user /bin/zsh
ããã©ã«ãã·ã§ã«ã®å¤æ´ãåæ ããããããä¸åº¦EC2ã¤ã³ã¹ã¿ã³ã¹ãåèµ·åãã¾ãã
sudo reboot
å度ãSSHæ¥ç¶ãã¾ãã
- VS Codeãéãã[â + shift + p]ãåææ¼ããã¾ãï¼Windowsã®å ´åã¯ã[ctrl + shift + p]ï¼ã
- 表示ãããå
¥åæ¬ã«
Remote-SSH: Connect to Host
ã¨å ¥åããEnterãæ¼ãã¾ãã - Hoståãã¯ãªãã¯ãã¾ãã
ã確èªãããã©ã«ãã·ã§ã«ã®å¤æ´
以ä¸ã®ã³ãã³ããå®è¡ããããã©ã«ãã·ã§ã«ãzshã«ãªã£ã¦ãããã¨ã確èªãã¾ãã
echo $SHELL # /bin/zsh ã¨è¡¨ç¤ºãããã°OK
ããã³ããï¼starshipï¼ã®è¨å®
以ä¸ã®ã³ãã³ããå®è¡ããstarshipãã¤ã³ã¹ãã¼ã«ãã¾ãã
sudo su - curl -sS https://starship.rs/install.sh | sh exit
以ä¸ã®ã³ãã³ããå®è¡ããVimã§starshipã®è¨å®ãã¡ã¤ã« ~/.config/starship.toml
ãéãã¾ãã
mkdir -p ~/.config && touch ~/.config/starship.toml vim ~/.config/starship.toml
åºæ¬çãªè¨å®å 容ãå ¥åãã¾ãã
i
ãæ¼ãã¦ãVimã®æ¿å ¥ã¢ã¼ãã«å¤æ´ãã¾ãã- 以ä¸ã®å 容ãã³ãããã¾ãã
- ãã¼ãåå
¥åã®ç¶æ
ã§
Esc
ãæ¼ãã:wq
ã¨å ¥åãã¦ä¿åãã¾ãã
# ~/.config/starship.toml add_newline = false format = """ $username\ $directory\ $git_branch\ $git_status\ $time\ $line_break\ \\$ """ [username] format = "[$user](white):" [directory] format = "[$path](white)" truncation_length = 0 truncate_to_repo = false [time] format = " [$time](white)" time_format = "[%Y/%m/%d %T]" disabled = false [line_break] disabled = false [git_branch] format = " [$branch(:$remote_branch)](green)" [git_status] format = ' ([\[$all_status$ahead_behind\]](red))'
ããã³ããã®è¨å®ã®åæ ãããããã以ä¸ã®ã³ãã³ããå®è¡ãã¾ãã
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
ã確èªãããã³ããã®è¨å®
以ä¸ã®ã³ãã³ããå®è¡ããããã³ããã夿´ããã¦ãããã¨ã確èªãã¾ãã
exec $SHELL -l # ããã³ããã®è¡¨ç¤ºã `ec2-user:~/ [2022/08/27 10:00:01]` ã®ããã«å¤ããã°OK
Git, GitHubã®è¨å®
次ã«ãGitã¨GitHubã®è¨å®ããã¾ãã
Gitã®è¨å®
以ä¸ã®ã³ãã³ããå®è¡ããVimã§gitã®è¨å®ãã¡ã¤ã« ~/.gitconfig
ãéãã¾ãã
vim ~/.gitconfig
åºæ¬çãªè¨å®å 容ãå ¥åãã¾ãã
i
ãæ¼ãã¦ãVimã®æ¿å ¥ã¢ã¼ãã«å¤æ´ãã¾ãã- 以ä¸ã®å 容ãã³ãããã¾ãã
- ã¡ã¼ã«ã¢ãã¬ã¹ã¨ã¦ã¼ã¶ã¼åãä¿®æ£ãã¾ãã
- ãã¼ãåå
¥åã®ç¶æ
ã§
Esc
ãæ¼ãã:wq
ã¨å ¥åãã¦ä¿åãã¾ãã
# ~/.gitconfig [user] email = [email protected] # GitHubã®ã¡ã¼ã«ã¢ãã¬ã¹ name = test-user-name # GitHubã®ã¦ã¼ã¶ã¼å [alias] ad = add br = branch ci = commit cm = commit co = checkout cp = cherry-pick df = diff gp = grep gr = grep lg = log pl = pull rss = reset --soft HEAD^ rm = remove ss = status st = status uns = restore --staged . [grep] lineNumber = true [pager] diff = cat grep = cat log = less [core] excludesfile = ~/.gitignore
GitHubã¸ã®SSHæ¥ç¶ã®è¨å®
以ä¸ã®ã³ãã³ããå®è¡ããGitHubã«ç»é²ããSSHãã¼ã使ãã¾ãã
cd ~/.ssh ssh-keygen -t ed25519 -C "" # 使ãããã¼å㯠`github` ã¨ãã¾ãã # å¿ è¦ã«å¿ãã¦ãSSHãã¼ã«ãã¹ã¯ã¼ããè¨å®ãã¾ãã
以ä¸ã®ã³ãã³ããå®è¡ããVimã§sshã®è¨å®ãã¡ã¤ã« ~/.ssh/config
ãéãã¾ãã
vim ~/.ssh/config
GitHubã¸ã®SSHæ¥ç¶ã®è¨å®å 容ãå ¥åãã¾ãã
i
ãæ¼ãã¦ãVimã®æ¿å ¥ã¢ã¼ãã«å¤æ´ãã¾ãã- 以ä¸ã®å 容ãã³ãããã¾ãã
- ãã¼ãåå
¥åã®ç¶æ
ã§
Esc
ãæ¼ãã:wq
ã¨å ¥åãã¦ä¿åãã¾ãã
Host github.com HostName github.com User git IdentityFile ~/.ssh/github
以ä¸ã®ã³ãã³ããå®è¡ããè¨å®ãã¡ã¤ã«ã®æ¨©éãä¿®æ£ãã¾ãã
chmod 600 ~/.ssh/config
以ä¸ã®ã³ãã³ããå®è¡ããGitHubã«ç»é²ããSSHãã¼ãã³ãã¼ãã¾ãã
cat ~/.ssh/github.pub # 表示ãããå 容ãã³ãã¼ãã¾ãã
GitHubã«SSHãã¼ãç»é²ãã
- ãã©ã¦ã¶ã§GitHubã«ã¢ã¯ã»ã¹ãã¾ãã
- ç»é¢å³ä¸ã®ã¦ã¼ã¶ã¼ã¢ã¤ã³ã³ãã¯ãªãã¯ãã¦
Settings
ãã¯ãªãã¯ãã¾ãã - å·¦ã¡ãã¥ã¼ã®
SSH and GPG keys
ãã¯ãªãã¯ãã¾ãã New SSH key
ãã¯ãªãã¯ãã¦ãä»»æã®ã¿ã¤ãã«ãå ¥åãã¾ãã- ä¸ã§ã³ãã¼ããSSHãã¼ãè²¼ãä»ãã¦ã
Add SSH key
ãã¯ãªãã¯ãSSHãã¼ãä¿åãã¾ãã
ã確èªãGitHubã¸ã®SSHæ¥ç¶
ã¿ã¼ããã«ã§ä»¥ä¸ã®ã³ãã³ããå®è¡ããGitHubã¸ã®SSHæ¥ç¶ãã§ãããã¨ã確èªãã¾ãã
ssh -T github.com yes # `Hi ã¦ã¼ã¶ã¼å! You've successfully authenticated,` ã®ãããªã¡ãã»ã¼ã¸ãè¿ã£ã¦ããã°OK
ã¢ããªéçºã§å½¹ã«ç«ã¤ãã¼ã«ã®ã¤ã³ã¹ãã¼ã«
ç¶ãã¦ãã¢ããªéçºã§å½¹ç«ã¤ãã¼ã«ãã¤ã³ã¹ãã¼ã«ãã¾ãã
tigã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããtigãã¤ã³ã¹ãã¼ã«ãã¾ãã
cd git clone [email protected]:jonas/tig.git cd tig make make install
ã確èªãtigã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããtigãã¤ã³ã¹ãã¼ã«ããã¦ãããã¨ã確èªãã¾ãã
tig # tigã®gitãã°ã表示ãããã°OK # tigããæããã¨ã㯠q ãæ¼ãã¾ãã
docker, docker composeã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããdockerãã¤ã³ã¹ãã¼ã«ãã¾ãã
cd sudo dnf install docker -y sudo systemctl start docker sudo systemctl enable docker
以ä¸ã®ã³ãã³ããå®è¡ããdocker composeãã¤ã³ã¹ãã¼ã«ãã¾ãã
- 夿°VERã«ã¯ãdocker composeã®ãã¼ã¸ã§ã³ãå ¥ãã¾ãã
sudo mkdir -p /usr/local/lib/docker/cli-plugins VER=2.4.1
sudo curl -L https://github.com/docker/compose/releases/download/v${VER}/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose sudo ln -s /usr/local/lib/docker/cli-plugins/docker-compose /usr/bin/docker-compose
以ä¸ã®ã³ãã³ããå®è¡ããdockerã°ã«ã¼ãã«ec2-userã追å ãã¾ãã
sudo usermod -a -G docker ec2-user
ã°ã«ã¼ãã¸ã®ã¦ã¼ã¶ã¼è¿½å ãåæ ããããããä¸åº¦EC2ã¤ã³ã¹ã¿ã³ã¹ãåèµ·åãã¾ãã
sudo reboot
å度ãSSHæ¥ç¶ãã¾ãã
- VS Codeãéãã[â + shift + p]ãåææ¼ããã¾ãï¼Windowsã®å ´åã¯ã[ctrl + shift + p]ï¼ã
- 表示ãããå
¥åæ¬ã«
Remote-SSH: Connect to Host
ã¨å ¥åããEnterãæ¼ãã¾ãã - Hoståãã¯ãªãã¯ãã¾ãã
ã確èªãdocker, docker composeã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããdocker, docker composeãã¤ã³ã¹ãã¼ã«ããã¦ãããã¨ã確èªãã¾ãã
docker --version # `Docker version 25.0.5, build 5dc9bcc` ã®ããã« # dockerã®ãã¼ã¸ã§ã³ãè¿ã£ã¦ããã°OK docker compose version # `Docker Compose version v2.4.1` ã®ããã« # docker composeã®ãã¼ã¸ã§ã³ãè¿ã£ã¦ããã°OK
asdfã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããasdfãã¤ã³ã¹ãã¼ã«ãã¾ãã
cd git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1 echo '. $HOME/.asdf/asdf.sh' >> ~/.zshrc exec $SHELL -l
以ä¸ã®ã³ãã³ããå®è¡ããVimã§asdfã®è¨å®ãã¡ã¤ã« ~/.asdfrc
ãéãã¾ãã
vim ~/.asdfrc
è¨å®å 容ãå ¥åãã¾ãã
i
ãæ¼ãã¦ãVimã®æ¿å ¥ã¢ã¼ãã«å¤æ´ãã¾ãã- 以ä¸ã®å 容ãã³ãããã¾ãã
- ãã¼ãåå
¥åã®ç¶æ
ã§
Esc
ãæ¼ãã:wq
ã¨å ¥åãã¦ä¿åãã¾ãã
# ~/.asdfrc legacy_version_file = yes
ã確èªãasdfã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããasdfãã¤ã³ã¹ãã¼ã«ããã¦ãããã¨ã確èªãã¾ãã
asdf --version # `v0.14.1-f00f759` ã®ããã« # asdfã®ãã¼ã¸ã§ã³ãè¿ã£ã¦ããã°OK
Node.js, Rubyã®ã¤ã³ã¹ãã¼ã«
ç¶ãã¦ãasdfãå©ç¨ãã¦ãåããã°ã©ãã³ã°è¨èªãã¤ã³ã¹ãã¼ã«ãã¾ãã
Node.jsã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããNode.jsãã¤ã³ã¹ãã¼ã«ãã¾ãã
asdf plugin add nodejs asdf install nodejs 16.18.1 asdf global nodejs 16.18.1 npm install -g yarn
ã確èªãNode.jsã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããNode.jsãã¤ã³ã¹ãã¼ã«ããã¦ãããã¨ã確èªãã¾ãã
node --version # `v16.18.1` ã®ããã« # Node.jsã®ãã¼ã¸ã§ã³ãè¿ã£ã¦ããã°OK yarn --version # `1.22.22` ã®ããã« # yarnã®ãã¼ã¸ã§ã³ãè¿ã£ã¦ããã°OK
Rubyã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããRubyãã¤ã³ã¹ãã¼ã«ãã¾ãã
asdf plugin add ruby asdf install ruby 3.2.2 asdf global ruby 3.2.2
ã確èªãRubyã®ã¤ã³ã¹ãã¼ã«
以ä¸ã®ã³ãã³ããå®è¡ããrubyãã¤ã³ã¹ãã¼ã«ããã¦ãããã¨ã確èªãã¾ãã
ruby --version # `ruby 3.2.2` ã®ããã« # Rubyã®ãã¼ã¸ã§ã³ãè¿ã£ã¦ããã°OK
docker composeã§PostgreSQLãèµ·å
æå¾ã«ãdocker composeã§PostgreSQLãèµ·åãã¾ãã
ä»åã¯PostgreSQLã®ãã¼ã¸ã§ã³ 12.18
ã使ç¨ãããããdocker composeã§PostgreSQLãèµ·åãã¾ãã
docker composeã®è¨å®
以ä¸ã®ã³ãã³ããå®è¡ããVimã§docker composeã®è¨å®ãã¡ã¤ã« docker-compose.yml
ãéãã¾ãã
vim docker-compose.yml
i
ãæ¼ãã¦ãVimã®æ¿å ¥ã¢ã¼ãã«å¤æ´ãã¾ãã- 以ä¸ã®å 容ãã³ãããã¾ãã
- ãã¼ãåå
¥åã®ç¶æ
ã§
Esc
ãæ¼ãã:wq
ã¨å ¥åãã¦ä¿åãã¾ãã
# docker-compose.yml version: "3.7" services: postgresql: image: postgres:12.18-alpine environment: POSTGRES_USER: root POSTGRES_HOST_AUTH_METHOD: trust ports: - "5432:5432" command: -p 5432 volumes: - "./docker/data/postgresql:/var/lib/postgresql/data:cached"
以ä¸ã®ã³ãã³ããå®è¡ããdocker composeã§PostgreSQLãèµ·åãã¾ãã
echo "export DATABASE_URL='postgres://root@localhost/'" >> ~/.zshrc exec $SHELL -l docker compose up -d sudo chmod 777 -R docker/data/postgresql
ã確èªãdocker composeã§PostgreSQLã®èµ·å
以ä¸ã®ã³ãã³ããå®è¡ããdocker composeã§PostgreSQLãèµ·åãã¦ãããã¨ã確èªãã¾ãã
docker ps # `postgres:12.18-alpine` ã®ããã« # PostgreSQLã®ã³ã³ãããèµ·åãã¦ããã°OK psql -h localhost -U root # `psql (15.8, server 12.18)` ã®ããã« # PostgreSQLã«æ¥ç¶ã§ããã°OK exit
ãããã«
ã覧ããã ãããããã¨ããããã¾ããï¼
è¡æ¦ ç´äºº (è¨äºä¸è¦§)
2020å¹´4æ æ°åå
¥ç¤¾
ãµã¼ãã¹éçºé¨ãµã¼ãã¹éçºèª²æå±
2024 AWS ALL Certifications Engineers
Railsã¢ããªéçºè
@zhiren1211