小村の開発環境構築(7) GitHubのプロジェクト作成とクローン

  • こんばんは、小村だよ!

  • 今日はねー、我らが資材の根城、GitHubの初期設定をしていくよー!

  • あ、じゃあ私のGitの運用ルールについても軽く触れとかなきゃだねー!



やること

  1. Git運用ルールの確認
  2. GitHubリポジトリを新規作成
  3. Ubuntu環境にリポジトリをClone
  4. developブランチを作成してPush
  5. GitHubでdevelopブランチをデフォルトブランチに設定



前提

  • GitHubのアカウントを作成済



事前準備



Git運用ルール(暫定)

  • じゃーさっそく私のGit運用ルールについてまとめるね!

  • まとめるといっても、基本的にGitFlowのワークフローにのっとるよ!

    • 主に使うブランチは[main] [develop] [release/X.X.X] [feature/(機能名)]

    • [main]ブランチは本番稼働している資材と常に一致

    • [main]ブランチは[release/X.X.X]ブランチをマージすることで更新

    • [release/X.X.X]ブランチは[develop]ブランチからリリースタイミングで切る

    • 開発はしばらく直接[develop]ブランチを更新

    • 形が整ってきたら、[feature/(機能名)]ブランチを切って機能追加

  • ひとまずはこれで進めていくよー!

  • 何か有用な運用ルールがあれば乗り換えるかもだけどね!予定は未定!



手順

GitHubにログイン

f:id:kom314_prog:20210531233833p:plain
  • ではでは、GitHubリポジトリを作っていきましょうか!

  • 最初にRepositoriesの[New]をクリックしてねー



リポジトリを新規作成

f:id:kom314_prog:20210531234250p:plain
  • リポジトリ名のつけ方ってどうするのがいいのか毎回悩む

  • 今回はシンプルにプロジェクト名と同じに。末尾に[-ui]つけようかだいぶ悩んだ!

  • 将来的にapi用の別リポジトリを作る予定。そしたらそっちだけ[-api]つけるかなー

  • あとは最初からREADMEをつけるようにチェック。この辺は趣味だねー



HTTPSのクローン用のURLをコピー

f:id:kom314_prog:20210531234657p:plain
  • 無事リポジトリができました!一国一城の主です。王と呼べ!

  • [Code]→[Clone]→[HTTPS]のURLが必要なのでコピーしておくよ



Ubuntuリポジトリをクローン

f:id:kom314_prog:20210603211927p:plain
  • ここからはVSCodeUbuntuリモート接続済み)を使ってくよ!

  • コマンドパレットを開いて[Git Clone]を選択してね!



f:id:kom314_prog:20210603212148p:plain
f:id:kom314_prog:20210603212557p:plain
  • 先ほどコピーしたGitHubリポジトリのURLを貼り付けてー

  • クローンするフォルダを選択してー

  • クローン出来たらそのフォルダを開いてね!



[develop]ブランチを作成してpush

f:id:kom314_prog:20210603213242p:plain
f:id:kom314_prog:20210603213356p:plain
  • GitHubで最初に作成したリポジトリには[main]ブランチだけが存在するよ

    • 前は[master]だったけどいつの間にか変わってるね!
  • ではでは、先ほど説明した[develop]ブランチを作っていくよー

  • VSCode左下の[main]をクリックしてbranchのコマンドパレットを開いてね!



f:id:kom314_prog:20210603213517p:plain
f:id:kom314_prog:20210603213742p:plain
f:id:kom314_prog:20210603213952p:plain
  • [create new branch]を選択して、[develop]を入力してEnter

  • そしたらVSCode左のバー(アクティビティバー)の「ソース管理」から[push]を実行

  • 「上流ブランチないけど新しく作る?」って聞かれるのでOK押すよ!

  • 無事何も起きなければGitHub側に[develop]ブランチが生まれてるはず!



GitHubでデフォルトブランチの設定

f:id:kom314_prog:20210603214130p:plain
  • できてるね!今後はこの[develop]ブランチが主戦場になっていきます

  • ところでさー毎回[main]ブランチから[develop]に切り替えるのって面倒じゃん???

  • というわけで、デフォルトブランチを[develop]に変えていくよーーー!

  • Settingsタブを開いてね!



f:id:kom314_prog:20210603215054p:plain
f:id:kom314_prog:20210603215217p:plain
  • settingsのbranchのところから[default branch]を開いてー

  • んで[main]になってるところを[develop]ブランチに変更するよ

  • 「不具合おきてもしーらね!」って言ってくる。いやいや責任は取ってもらうで。



f:id:kom314_prog:20210603215551p:plain
  • これでデフォルトブランチ変更完了!

  • マージのルールとかも設定しようと思ったけど、個人だしひとまずはいいかなー



終わりに

  • GitHub関連の設定はひとまずこんなものかなー!

  • そのうちまたマージのルールとかつけだす予感がプンプンするぜ!

  • 次回はVSCode拡張機能についてまとめる予定だよー!

  • ではではまたねーーー!ちゃお~~~!!!



小村の開発環境構築(6) Ubuntuの設定(Nuxt.js用)

  • こんばんは、小村だよ!

  • 今日はNuxt.jsを使用して開発するうえで必要なものをインストールをするよ!

  • なので他の言語を使う人はあまり参考にならないかも!

  • あ、でもNode.js系を使う人はそのまま参考になるかも!



やること

  1. nvm, npm, nodeのインストール
  2. yarnインストール



事前準備



手順

nvm, npm, nodeのインストール

  • まずはそれぞれインストールされているかを確認
nvm --version
npm --version
node --version
f:id:kom314_prog:20210531220312p:plain
# curl存在確認
curl --version

# 存在しなければインストール
# sudo apt-get install curl 
f:id:kom314_prog:20210531221355p:plain
  • ばっちり存在!バージョンとかは気にしません

  • それでは下記でnvmをインストール

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
f:id:kom314_prog:20210531221935p:plain
  • インストール完了!なんか反映には再起動なりが必要らしい

  • 新しいコンソールを開いてバージョン確認

nvm --version
f:id:kom314_prog:20210531222305p:plain
  • ばっちりやで工藤!

  • そいだらnvmを使用してnodeをインストールすんで!

nvm install node
f:id:kom314_prog:20210531223003p:plain
  • この勝負、もろたで工藤!

  • nvmでnodeをインストールするとな!自動的にnpmもいい感じになるんや!

  • つーわけで最後にバージョンの確認やで!

nvm --version
npm --version
node --version
f:id:kom314_prog:20210531223528p:plain
  • やったで工藤!!!

  • これがワイのワイルドワイバーンや!!!



yarnインストール

  • 参考:npmとは yarnとは

  • yarnはパッケージマネージャで、npmの上位互換という認識

  • では、以下コマンドでyarnが入っているか確認

yarn --version
f:id:kom314_prog:20210531224652p:plain
  • ざんね~~~ん!ないのでインストール!

  • 参考:ヤーン、Ubuntu20.04用のこのJavaScript依存関係マネージャーをインストールします

    • 日本語でおk

      • 翻訳が怪しいけどよさげな参考サイトが見つけられなかった……
    • 要は、aptにyarnのライブラリを追加してインストールするのかな

    • 注意点としてNode.js、NPM使用時はsudo apt install yarnだとダメらしい

      • おもいっくそ前の項でインストールしてるわ

      • sudo apt install --no-install-recommends yarn のコマンドがいいみたい

  • 以上をまとめると下記になりそう。やーーー怪しい翻訳こっっっわ!

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install --no-install-recommends yarn
yarn --version
f:id:kom314_prog:20210531230003p:plain
  • できてルーーー!!!

  • ままままぁこここれくらいわわ私にはどどどおってことないわね!!!!

  • 正直2行目とか4行目あまり理解できてないけどね!!!!!!

  • 他のサイトみても同じようなコマンドだしいいんでしょう!!!きっと!!!

  • 結果おーらい!!!ビバ!!!あびばびば!!!



おわりに

  • というわけで、Nuxt.jsを使う上での最低限のインストール系はおしまい!

  • また必要そうなものがあればここに追記していきまーーーす!

  • ではでは次回はGitHub関連の設定をするよ!

  • まったね~~~!ちゃお!



小村の開発環境構築(5) Ubuntuの設定(全言語共通)

  • こんばんは、小村だよ!

  • 今日はUbuntuに必要なライブラリ等のインストールをするよ!

  • まずは開発していくうえで、全言語共通で必要であろう設定をまとめていくよ!

  • Nuxt.jsを使って開発をする人は次の記事も参考にしてね!

  • しかしちょいちょいCentOS7の時と違ってびびるね!そりゃそうだ!



やること

  1. gitの設定
  2. VS Code ファイル ウォッチャーのハンドル数の変更
  3. heroku CLI インストール



前提条件

  • VSCodeから[Ubuntu 20.04 LTS]の環境へリモート接続ができる
    • これができるなら恐らくGCEでなくてもいける



手順

GCEを使う場合の事前準備

f:id:kom314_prog:20210613125542p:plain
  • 前回の記事までの環境構築をした人向けに書いておくね

  • GCEのインスタンスを立ち上げて外部IPをコピーしてね

f:id:kom314_prog:20210613125655p:plain
  • VSCodeからRemote-SSHのコンフィグ開いてHostNameのIPを上書き

  • 外部IPは変動するからGCEインスタンス立ち上げたら毎回更新する意識でネ!

f:id:kom314_prog:20210613125932p:plain
  • したらUbuntu環境にSSH接続するよ!

  • 環境構築記事では常に最初にこの手順でUbuntuに接続するよーーー

  • これ以降の作業は、Ubuntuに接続したVSCodeのターミナルで実施するからねー



gitのバージョン確認

  • 最初は言わずと知れたバージョン管理であるgitの設定から始めるよ!

  • まずはgitがインストールされているか確認

git --version
f:id:kom314_prog:20210531214743p:plain
  • 入ってるんだね!!!バージョンは2.25.1

  • 最新バージョンをgit公式で確認

    • 記載当時は2.32.0が最新
  • そこまで古くもないね。十分。このまま使えば命までは取らないでやろう

  • だが断る!!!この小村が最も好きな事のひとつは「NO」と断ってやる事だ!

  • せっかくなので最新のGitにバージョンアップしますか。面倒なら次は飛ばしてよし



gitのバージョンアップ

f:id:kom314_prog:20210613132358p:plain
  • うん、使えるね

    • 万が一使えない場合はこちらを参考に使用できるようにする
  • 余談だけどaptやadd-apt-repositoryについては下記参考サイトがわかりやすかった

  • 次にaptのリポジトリにPPAというところから最新のgitを登録するよ

    • PPAってなんぞ?と思った人は下記。非公式のパッケージのライブラリかな

    • 参考:PPAとは何ですか?

sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt upgrade
git --version
f:id:kom314_prog:20210613134357p:plain
f:id:kom314_prog:20210613134547p:plain
  • うん、よどみなくアップデート完了!

  • CentOSでは入れるのにひと悶着あったからほっとしたような寂しいような



gitの設定

  • 参考:これだけ押さえる!gitconfigの基本

  • 最後にユーザ名とメールアドレスだけでも登録しときましょ

    • これしておかないとCommit時とかに怒られちゃう

    • ほかにも山ほどgitのconfig項目がある。そのうち調べよ……きっと……たぶん……

  # git config --global user.name [ユーザ名]
  git config --global user.name komura

  # git config --global user.email [メールアドレス]
  git config --global user.email ***@gmail.com

  git config --global --list
f:id:kom314_prog:20210613140924p:plain
  • おっけーばっちり!Gitに関してはこれでひとまずおしまい!



VS Code ファイル ウォッチャーのハンドル数の変更

  • 参考:Visual Studio Code 公式

  • なんのこっちゃと思うだろう?私も思っている

  • ただとりあえず、これやっておかないと色んなタイミングで怒られます

    • 具体的症状としては、開発時にgitが変更を感知してくれなくなったりする

    • ちなみにNuxt.jsを使うと確定で怒られる

    • 多分大きなフォルダ構成のフレームワーク使うときにはやったほうがよさそう

  • そんななので兎にも角にも最初にやっておけば間違いない設定の認識

    • やんないほうがいい時とかあるなら教えてほしいです!
  • では以下のコマンドを実行

# まず初期設定の数字を見る
# おそらく8192と表示される
cat /proc/sys/fs/inotify/max_user_watches

# sysctl.confファイルを管理者権限で開く
cd ~
cd ../../etc
sudo vi sysctl.conf
f:id:kom314_prog:20210606142331p:plain
  • 図のように表示されたら、下記のようにして内容を編集

    1. [i]キーを押す(INSERTモードに移行)
    2. [fs.inotify.max_user_watches=524288]を最後尾に追加
    3. [Esc]キーを押す(INSERTモード解除)
    4. [:wq]を入力してエンター(保存して抜ける)
f:id:kom314_prog:20210606143531p:plain
  • 変更を適用して確認
sudo sysctl -p
cat /proc/sys/fs/inotify/max_user_watches
f:id:kom314_prog:20210606144044p:plain
  • おっけー!設定の反映が確認できたね!

  • 最後に下記してカレントディレクトリを戻しておこうね

cd ~
  • しかしデフォルト値の約60~70倍くらいに設定してるのか……

    • まぁVSCodeの公式リファレンスに沿ってやってるし問題ないよね……

    • ないよね!!!!!(懇願)



heroku CLI インストール

snap --version
sudo snap install --classic heroku
snap list
heroku --version
f:id:kom314_prog:20210531232050p:plain
  • 大丈夫そうだね!

  • 下記コマンドでherokuにログインするところまで確認しちゃいます

heroku login -i
f:id:kom314_prog:20210607225940p:plain
  • メールアドレスとパスワードを入力してログイン

    • ちなみに[-i]のコマンドを付けないとブラウザを使った認証になる

    • そしてそれだと私の環境(VSCodeUbuntuリモート接続)ではうまくいかない

  • ログインはうまくいってる。ただ下記warningが出ちゃってるね

Warning: heroku update available from 7.52.0 to 7.54.0.

  • 最後にちゃちゃっとこれを直しちゃいますか(フラグ)

    • なぁに大丈夫、かすり傷さ(フラグ)

    • おれ、このアップデートが終わったら結婚するんだ(フラグ)



heroku CLI バージョンアップ(できない)

heroku --version
sudo snap refresh 
heroku update
heroku --version
f:id:kom314_prog:20210613150507p:plain
  • あァん???できねんだが???

  • なんぞ???

f:id:kom314_prog:20210613150719p:plain
  • おいィ!heroku公式さんよォ!話ちげんだが!!??

  • そもそも勝手に更新してくれるんじゃァないのかぃィ!!!???

  • もしかして再インストールすべき?毎回?そんなのやだぁ!!

  • ひとまず使えてるのでこのままで様子見します

    • 解決策知ってる人いたらおぢえでぐだざい



おわりに

  • ひとまず共通で必要な設定はこれくらいの認識!

  • また何か必要な設定が増えたらここに追記したいと思いまーーース!

  • VSCodeに必要な拡張機能はまた別途記事でまとめまるね

  • 次回はNuxt.jsを使用するうえでの必要なインストール類の予定!

  • それじゃまたね~~~ちゃお!!!



技術書:モブプログラミング・ベストプラクティス(1)

  • こんばんは、小村だよ!

  • ちょっと~~~悩み聞いてくださいよせんぱ~~~い!

    ->聞く

  聞かない

  • ホントですか~~~!?嬉しいです~~~!!!

  • 私近くのいい個人居酒屋知ってるんですよ~~~!それじゃあ行きましょ~~~!



悩み相談

  • ~~~なわけで、初学者に技術教えつつ、期限迫った案件やらなきゃで~!

  • どうにもこうにもにっちもさっちもあっちもこっちも今すぐどうにかしないと~!

  • もう困いっちんぐ~!ちょべりば~!って感じなんですよせんぱ~~~い!

    ->モブプログラミングをしてみたら?

  能力不足では?

  • もぶぷろぐらみんぐぅ~~~?何ですか~それ~?

  • えっこの本くれるんですか~!?ありがとうございます~~~!

  • えへへ、せんぱいは優しいな~!

  • ……あれれ!わわっ!どうしようっ!終電の時間、過ぎちゃいそう!!!

    ->うちに泊っていきなよ

  走れ

  • え!?……えへへ!じゃあお言葉に甘えちゃおうかな~~~!

  • あこがれのせんぱいの家に行けるなんて、夢みたいです~~~!

  • えっ!?!?それ、本気……ですか……?

  • ……はい!こちらこそ!よろしくお願いします!

  • えへへ!嬉しいな~!

  • !!

  • せんぱい!まだ家に着いてないですよ~~~も~~~!

───Happy End



技術書「モブプログラミング・ベストプラクティス」

f:id:kom314_prog:20210615235609p:plain




  • 私が今モブプラグラミングに期待する成果は下記

    • 初学者(2人)に私や熟練者のスキルを継承したい

    • 取り掛かかる案件を期日内に終わらせたい

  • はたしてこれを達成するための手段になりうるのやらどうやら




  • ちなみにスキル差は私を100としたときに下記ぐらいの差がある

    • 私:100

    • 熟練者(1人):200

    • 初学者(2人):10

  • 差ありすぎィ!!

  • 有識者少なすぎィ!!!

  • いや、だから増やしたいんだけどネ!!!




  • そんな思いを抱えつつ、ひとまず知ってみなきゃ始まらない

  • というわけでとりあえず今日は1章だけでも読んでみたいと思いまーーーす!



1章:なぜモブプログラミングなのか

モブプログラミングの要点

  • モブプログラミングはペアプログラミングとは別物

  • リソース効率ではなくフロー効率が高い

    • リソース効率:値段に対し成果物が多い

    • フロー効率:値段は高いが機能完成までの速さが早い

  • キーパーソンへの依存度が下がる

  • チーム内のスキルアップ率が高い

  • クライアントに影響を及ぼすような欠陥(バグ)が減る

モブプロが失敗しやすいタイミング

  • 障害にぶつかることが大きく2回ある

    • 導入し始めの手探りのとき

    • モビングにこなれてきた、数か月後

大事な考え

  • モブへの参加は自由である(それぞれの意志で決める)こと

    • 人によって合う合わないはあるし、嫌々参加しても失敗するだけ

取り入れたいプラクティス



1章まで読んだ感想

  • 翻訳は良い感じ。普通に読める

  • 浅く知っていた概要を改めてちゃんと読んだ感じ

    • 事前知識との大きな齟齬はなさそう
  • まだ自分の求めている成果が得られるだろうという確信はない

    • 概要レベルだからね、今後の内容に期待
  • むしろ若干の不安感を覚えた

    • 任意参加って、それしたら意欲高い人しか来ないから成功して当然では?

    • チームメイトが意識低かった場合についても本書でフォローしていて欲しいな



おわりに

  • というわけで、開発環境構築記事と並行して本書も読んでいきたいと思いますー

  • kindleの位置Noは現在 [512 / 2612]

  • 2~4日くらいで読み切りたいなーーー。

  • ではでは、ちゃおちゃお~~~!



小村の開発環境構築(4) VSCodeからVMインスタンス(Ubuntu)へのリモート接続設定

  • こんばんは、小村です。

  • 今日はおまちかね!VSCodeからUbuntuにリモート接続するよ!

  • もう自分のパソコンに依存しなくて済むよ!浮気し放題だネ!!!



やること

  1. SSHキー作成
  2. GCEインスタンスに公開鍵を登録
  3. VSCode拡張機能「Remote Development」をインストール
  4. VSCodeSSH接続用config設定
  5. Ubuntuへリモート接続



前提



手順

SSHキー存在確認

  • これからリモート接続に必要になる「SSHキー」を作ってくよ!

  • まずはエクスプローラー開いて下記のフォルダパスにアクセスしてね

    • C:\Users\(windowsアカウント)


f:id:kom314_prog:20210611004948p:plain
  • ここに[.ssh]フォルダが存在するかを確認。

    • 存在しない

      • Good!問題なし!次の項へGOだ!
    • 存在する、けどいつ作られたか/用途がわかっている

      • Cool!君は君の判断でどうにでもできる!
    • 存在する、そしてなぜ存在するかもわからない

      • Boo!次の項ではくれぐれもEnter連打するなよ!!!



コマンドプロンプトよりSSHキー作成

ssh-keygen
f:id:kom314_prog:20210529221137p:plain
  • なんか色々質問される。痴れ者が……余と会話できることを誇りに思え……

  • 下記が最初の質問

Enter file in which to save the key 
(C:\Users\(Windowsアカウント)/.ssh/id_rsa):
  • さっきの項で[.ssh]フォルダが存在しなかった人はそのままEnterでOK!

    • さっき確認したフォルダに[.ssh]フォルダが作られるようになるよ
  • もし[.ssh]フォルダが存在した人はフォルダパスを変えてね!

    • もし何も変えずそのままEnterすると上書きするよーって聞かれるよ!

    • 上書きしちゃうと別の何かで使ってるSSHキーを消しちゃう可能性あるからね!

    • 私は言ったからな!!!!!!

    • どこに変えたらいいか?自分で考えろ!(.ssh→.ssh2であと同じでいいかも?)


Enter passphrase (empty for no passphrase):
  • 2つ目の質問はパスフレーズだね。パスワードみたいなものだよ

    • つけなくても作れるけどつけたほうが良いよ

    • つけると毎回リモート接続する時に入力する必要があるよ

      • くっそめんどい!だから私はつけなくした!最初つけたけど作り直した!
    • 注:つけないことでセキュリティ上何かあっても小村は責任を負いません

      • 私は言ったからな!!!!!!
  • パスフレーズを入れた場合再入力を求められる

  • パスフレーズが終わったら上の画像のように表示されて完了!



[id_rsa.pub](公開鍵)の内容コピー

f:id:kom314_prog:20210529221907p:plain
  • 最初に確認したフォルダに[.ssh]フォルダが存在することを確認

    • 作成するフォルダパス変えた人はそっち見てね!
  • そしたらフォルダ内の[id_rsa.pub]の中身をコピーしておいてね!

    • 公開鍵というものだよ!こっちは基本的に中身見られても平気!



前回作成したGCEインスタンスを編集

f:id:kom314_prog:20210529222454p:plain



GCEインスタンスに公開鍵を登録

  • [SSH 認証鍵]の欄で「表示して編集する」をクリック


f:id:kom314_prog:20210529222959p:plain
f:id:kom314_prog:20210529223016p:plain
  • さっきコピーした[id_rsa.pub]の内容をペースト

  • 貼り付けた値の最後の部分はキーになる。変更してもよいし変えなくてもよい。

f:id:kom314_prog:20210611000426p:plain
  • 私は[komura]に変えたよ!

    • このキー値は後で使うので覚えておいてね
  • そいだら「保存」をクリック



GCEインスタンスを立ち上げる

f:id:kom314_prog:20210529230145p:plain
  • 次は、GCEインスタンスが立ち上がってなければ立ち上げてね

  • そしたら外部IPが表示されるのでコピーしておいてね、後で使うよ!



VSCodeにRemoteDevelopmentをインストール

f:id:kom314_prog:20210529224506p:plain
  • ようやくVSCodeを使うよ!起動してね!

  • 一番左のバー(アクティビティバー)にて拡張機能をクリック

    • ちょっと違うテトリスみたいなアイコンのやつだね!
  • そしたら開いたバー(サイドバー)の検索欄に[Remote Development]を入力して検索

    • 画像の[Remote Development]を選択してインストール!
  • 詳細な説明は避けるけど、これがVSCodeからリモート接続してくれるえらい奴だよ!



VSCodeよりRemoteSSHのコンフィグファイルを開く

f:id:kom314_prog:20210529225010p:plain
f:id:kom314_prog:20210529225153p:plain
  • [ctrl] + [shift] + [P]にてコマンドパレットを開くよ

    • このショートカットはよく使うから覚えよう!
  • [remote-ssh open]と入力して、一番上に出た行をクリック

  • 先ほどSSHキーを作成した[.ssh]フォルダパスを指定するよ!



RemoteSSHのコンフィグファイルの編集

f:id:kom314_prog:20210611002832p:plain
f:id:kom314_prog:20210611002901p:plain
  • 上が開いた直後、下が編集後
Host Ubuntu-001(自由でOK)
    HostName (GCEの起ち上げた際の外部IP)
    User (GCEに登録したSSHのキー名)
    IdentityFile ~\.ssh\id_rsa(追加。秘密鍵のあるところ。フルパスでもOK)
  • [Host]はそのコンフィグの名前みたいだから好きな名前でOK

  • [HostName]は立ち上げたGCEインスタンスの外部IPを貼り付ける

    • 外部IPは静的化しない限り変わるので毎回書き直す必要あり

      • 静的化すると結構お金かかるので石油王以外は素直に毎回書き直そう
  • [User]はGCEのSSHキーを登録した時の、左側に出てたキー名

  • [IdentityFile]はSSHキーの秘密鍵(id_rsa)の作成した場所

  • 上記を入力したら保存するよ!!!これで設定はおわり!!!



Ubuntuにリモート接続

f:id:kom314_prog:20210529231026p:plain
  • 一番左のバー(アクティビティバー)からリモートエクスプローラーを選択

  • 前項のコンフィグの[Host]で設定した名前があるので、オンカーソル

  • 右側ににちっこいフォルダマークみたいのが出るのでクリック


f:id:kom314_prog:20210529231043p:plain
  • 新しいウィンドウが立ち上がって何か聞かれるので、[Linux]を選択

  • また何か聞かれるので[Continue]を選択

  • SSHキー作成時にパスフレーズを入力してた場合聞かれるので入力

  • 長かったーーー!!!!これで!!!ついに!!!



接続できない

f:id:kom314_prog:20210529233629p:plain
  • んあああああああああああああああああ!!!!!(発狂)

  • めっちゃエラー出るんだが???

  • CentOS7ではこれで動いていたんだが???

  • なんぞ???誰か我に恨み持ってる???



今度こそ接続!

f:id:kom314_prog:20210529235019p:plain
  • やったーーー!!!つながった!!!

  • SSHkeyのパスフレーズ間違えてただけみたいテヘペロ(・ω<)

  • SSHkeyをパスフレーズなしで作り直してGCEに再設定したら繋がりました!

  • くぅ~!疲れました!これにて完です!



おわりに

  • まだもうちょっとだけ続くのじゃ

  • 途中で言ったけど、GCEのインスタンスを立ち上げなおすたびに外部IPが変わるよ!

    • なので毎回コンフィグの[HostName]を変更する必要あり

    • 静的な外部IPにすることもできるけどお金かかるので計画的にね!

  • じゃー次はUbuntuに対しての設定しなきゃだねー!

  • はー疲れた!!!今日はこれでおちまい!

  • ちゃおちゃお~またね!!!



小村の開発環境構築(3) GCEインスタンスの作成

  • こんばんは、小村です。

  • ここからはリアルタイムで環境構築しながらブログ書いていきまーーース!

  • 今日はGCEインスタンスの作成を記録する予定だよ!!!



やること

  1. GCEインスタンスの作成



手順

[インスタンスを作成]をクリック

f:id:kom314_prog:20210529211345p:plain
  • すでにある[little-village-develop-001]はCentOS7で作ってたやつね

  • とりあえずこれは取っておいて[~002]を作っていきまス!

  • 通番つけててよかったーーー!

  • [002]が安定してきたら[001]は消したいと思います。

  • つかの間の余生を楽しんでくれたまえ。ふふっ(暗黒微笑)



インスタンス設定(1)

f:id:kom314_prog:20210529211445p:plain
  • まずは[名前][リージョン][ゾーン][マシンタイプ]を選択するよ!

  • 名前はご自由に!

  • リージョンは大事!選択した場所で値段が変わります!

    • GCP公式で適当なマシンタイプでリージョン変えるとどこが安いかがわかるよ!


f:id:kom314_prog:20210610211802p:plain
f:id:kom314_prog:20210610211959p:plain
  • 私が調べた時はアイオワとかその近辺が安かったので選択。

    • 東京とか選ぶと1.3倍くらい費用かかるよ!石油王におすすめ!
  • ゾーンはなんでもOK。aでもbでも青峰でも手塚でも。

  • マシンタイプはストレス感じないようにメモリ多めの2core8GBを選択

    • 後から変更できるので最初少なめで必要になってから増やすのがいいよ!



インスタンス設定(2)

f:id:kom314_prog:20210529212302p:plain
  • ブートディスクの調査は前回の記事参照。漢は黙って[Ubuntu 20.04 LTS]!

  • 永久ディスクは[10GB]を選択

    • 後から増やせるけど減らすの大変そうなので少なめ推奨(?)
  • 一見するとこれで最後だけど、画像の下の青枠をクリックして詳細表示してね!



インスタンス設定(3)

f:id:kom314_prog:20210529212730p:plain
  • こんなところに隠れていやがったか……へへっいい体しやがって……

  • 「可用性ポリシー」の「プリエンプティブ」をオンにする

  • これすると通常の金額の約1/3でGCEを使える

    • ひゃっほーーー!!!一生ついていきやすプリエンぱいせん!!!
  • ただ勝手にGCEが落ちる可能性とか、24時間以上つけられないとかの制約ある

  • 開発環境としては十分。むしろ落とし忘れても1日で落ちてくれる

    • ひゃっほーーー!!!焼きそばパン買ってきやすプリエンぱいせん!!!



インスタンス作成

f:id:kom314_prog:20210529213024p:plain
f:id:kom314_prog:20210529213053p:plain
  • 最後に作成ボタンを押せばインスタンスが作成されます。

    • やったーーー!!!一国一城の主です。殿と呼べ!
  • 作ったら勝手に起動されるから、使わないなら停止するといいよ!

    • 1日つけてると70円前後かかっちゃう。無料期間ならいいけどね!
  • 起動時間に応じて金額変わるからね、こまめな起動/停止を心がけよう!

    • そのうち時間起動で落とすような仕組み作りたいなぁ

      • でもプリエンプティブで24時間で勝手に落ちてくれるから優先度低め



おわりに

  • GCEインスタンスの作成はこれでおしまい!

  • これで環境構築で大ポカしてもまた1から作れるから安心だね!

  • 次回はVSCodeからUbuntuへのリモート接続まで記録する予定だよ!

  • ではではまったね~~~ちゃお!



GCEで選べるOSの調査。いったいどれが有能なのさ?

  • こんばんは、小村です

  • 今日、開発環境構築の続きを書くといったな……あれは嘘だ



  • 嘘じゃないの~~~!!!

  • GCEインスタンス作り直そうとしてるの~~~!!!

  • でもつまづちゃったから調査させてなの~~~!!!



GCEで選べるOSの種類多すぎ問題

f:id:kom314_prog:20210529180950p:plain
  • ↑これ

  • GCEで選べるOSの種類多すぎなのだが???

  • 勢いでUbuntuにするって言ったけど本当にこれでいいのーーー???

  • というわけでざっくりどんな違いがあるか調べてみたいと思いまス。



選べるOSリスト(記載時点)

OS名 分類 価格 特徴
CentOS Linux 無料 近々サポート終了
Container Optimized OS Google Chrome OS 無料 コンテナ特化
Debianデビアン Linux 無料 ★後述
Deep Learning on Linux 情報なく不明
Fedora CoreOS Linux 無料 コンテナ特化
Red Hat Enterprise Linux Linux 有料
Red Hat Enterprise Linux for SAP Linux 有料
SQL Server on Windows Server windows 有料
SUSE Linux Enterprise Server Linux 有料
SUSE Linux Enterprise Server for SAP Linux 有料
Ubuntu(ウブントゥ) Linux 無料 ★後述
Ubuntu Pro Linux 有料
Windows Server windows 有料
  • ザクッッと調べた感じこんな感じ

  • まずはお金かけたくないので有料のものは選択肢から除外じゃん?

  • 次にCentOSから乗り換えるための調査なので当然CentOSは除外

  • 最後にコンテナとして使うわけではないのでコンテナ特化も除外

  • というわけで残った候補は下記の2つ

  • うん、この2つが候補になる気配はビンビンしてた!!



DebianUbuntuの比較



  • 私の用途としては、LinuxはほとんどCLIで操作する予定

  • なのでDebianで事足りそう

  • ただいざとなった時のリモート接続→デスクトップ操作の道も残したい

  • GCEのインスタンスのスペック的にはUbuntuでも余裕で問題ない

  • むむむむ……



結論

f:id:kom314_prog:20210529191749p:plain



  • ぶっちゃけ最初からこれ見とけばよかったね

  • 自分で理解しながら選ぶのって気持ちいいね!

  • これにて無事選択完了!!!おつかれさまでした!!!



Ubuntu内での選択

f:id:kom314_prog:20210529192253p:plain
  • おわんねーーー!!!

  • Ubuntuバージョン大杉問題

  • たしかLTSってのが強いのは知っている。

  • ロングサポート版で2年ごとに更新されるって意味のハズ。

  • だからこの中なら20.04のLTSを選ぶのは確定。

  • 問題はMinimal、てめーだ!!!



「人がログインして操作すること」は想定されていないため、
Vimやnanoといったテキストエディター、ページャー(less)、
ターミナルマルチプレクサ関係(byobu・tmux・screen)、
Tab補完を強化するbash-completionなどなど、
多くのパッケージが削除されている
  • 自分はめっちゃリモートアクセスするので使うべきはMinimalでない!

  • よって「Ubuntu 20.04 LTS」あなたを犯人です!!!!!!!!!!

  • QED!(証・明・完・了!)