LinuxでVMを立てる時に、最近ではもっぱらCentOS7です。
そこで、Google Compute EngineでLinux CentOS7を立てて、必要なものを初期インストールし設定し、Golangを稼働させるまでの流れを備忘録として記録します。
目次
CentOS7に初期インストールし設定する
前提
- CentOS7
- wget
- lsof
- shasum
- nginxとconf設定
- git
- ssh用keygen
- Golang
- Golang用.bash_profile設定
- マシンの時間設定
GCEにインスタンスを立て、sshで接続
$ sudo su
$ vi ~/.bash_profile
Golang用.bash_profileを書いちゃう
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go_projects
export GOBIN=$GOPATH/bin
export GOROOT=/usr/local/go
# /usr/local/go/bin/go
必要なものをインストール
$ yum -y install lsof git nginx wget perl-Digest-SHA
lsof: ポート稼働状況などを見る git: バージョン管理する wget: ウェブアクセスする(ダウンロードなども) perl-Digest-SHA: shasumでhash計算する
nginx インストール
// CentOS EPELパッケージに
$ yum install epel-release
// 最新版nginxをインストール
yum install nginx
nginx を起動
// service start nginx はCentOS7では動かないのでシステムコントロールから起動
$ systemctl start nginx.service
nginx configはどこ?
/etc/nginx/nginx.conf にあります。
nginx config 設定適用
server {
listen 80;
listen [::]:80;
server_name domain.name;
location / {
proxy_pass http://127.0.0.1:8000;
root /root/go_projects/src/dir;
index index.html index.htm;
}
}
// ここでも service restart(reload) nginx は動かないので、システムコントロールから
$ systemctl reload nginx.service
Golangダウンロード用のディレクトリ作成
$ mkdir /download && cd /download
Golangダウンロード
$ wget -c https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz
Golang解凍
$ shasum -a 256 go1.9.2.linux-amd64.tar.gz
$ tar -C /usr/local -xvzf go1.9.2.linux-amd64.tar.gz
Golang用ワークスペース
$ mkdir -p ~/go_projects/{bin,src,pkg}
Golang用ワークスペースへ移動
$ cd ~/go_projects/src
git用のSSH keyを作成
$ ssh-keygen -t rsa -C "メアドとか" -b 4096
$ vi /root/.ssh/id_rsa.pub してコピーなど
CentOS7用Timezone指定
$ timedatectl set-timezone Asia/Tokyo
SElinuxの問題?
root権限を奪取された際の危険性を考え、各プロセスが最小限の権限で動くように設計されているCentOS7ならではでしょうか。
他のLinuxでは打ったことのないコマンド…
だからこそ、ハマっていた…おおよそ8時間無駄にした…
$ setenforce Permissive
解決!!
サクッとGolangが動く環境が出来ました!
CentOS7最高かよ!!