DevOps

Git 的好幫手 - Tig 讓你在cli將版控可視化

Tig 其實就是將 Git 到過來念的單字,這個工具

他將許多Git的功能,處理成更加直觀及快捷的交互操作

透過 Tig 可以很方便的讓我們直接在 cli 查看 git log, diff, blame…等

這裡將從安裝到一步步介紹用法

Continue Reading

更新 nodeJS 至最新版

方法一、更新 nodejs 至最新版

更新方式

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Continue Reading

Git stash 暫存指令,解決Git代碼衝突

有時在 pull 過程,偶爾都會遇到 Git 發生衝突的狀況

commit your changes or stash them before you can merge.

或者,在我們開發某個新feat功能,需要先處理一些修改再返回繼續開發時,

這時,就可以透過 git stash 暫存指令將目前開發內容暫存起來

先將新增的內容 pull 下來,或等我們狀況處理完畢,再將暫存內容取回

用法如下:

Continue Reading

修復,阿里雲 RHSA-2017:3263: curl security update

在阿里雲 ECS 默認的安裝環境,看到 安全警示 RHSA-2017:3263: curl security update

阿里雲的 centOS 7.4 預設的 curl 及 libcurl 不是最新版本,存在漏洞問題

修復該漏洞的方式:

Continue Reading

解決,ssh add 出現 Could not open a connection to your authentication agent.

當執行 ssh-add 時

ssh-add ~/.ssh/<private_key_file>

如果出現錯誤訊息: Could not open a connection to your authentication agent.

執行進入 ssh bash ,就能正執行 ssh-add

ssh-agent bash

ssh-add ~/.ssh/<private_key_file>

Continue Reading

阿里雲設置 ssh key 至 bitbucket 流程簡記

阿里雲設置 ssh key 至 bitbucket 流程簡記

設定 ssh key 到 bitbucket

ssh-keygen -f ~/.ssh/your_custom_name -C "youremail@emailhost.com"

Continue Reading

Git - 在新的 repository 保留過去歷史 commit log 紀錄,及同時連結多個 remote 作法

針對一些需求,要將舊有專案作為基礎來進行重構或者修整,讓新專案可以使用

最簡單的做法就是直接將 .git 刪除,再將所有專案一次加入新的 repository

但是過去專案執行過程所保留的紀錄,在遇到一些問題時,至少還有歷史 commit log 可以參考

保留原本的 git log 在新的 repository 延續使用方式:

查看目前 remote

查詢目前專案的 remote repository

git remote -v

Continue Reading

檔案權限列表

權限

r : 讀取 w : 寫入 x : 執行

權限角色

擁有者(u), 群組(g), 其他使用者(o)

所有使用者(a)

權限與數值關係

權限數字 數值相加 權限表示
0 0+0+0
1 0+0+1 –x
2 0+2+0 -w-
3 0+2+1 -wx
4 4+0+0 r–
5 4+0+1 r-x
6 4+2+0 rw-
7 4+2+1 rwx

檔案型態

檔案型態 說明
d 目錄
- 檔案
l 連結檔
b 儲存的周邊設備
c 序列設備

常見格式

目錄 777 drwx rwx rwx

檔案 755 -rwx r-x r-x

檔案 644 -rw- r– r–

Continue Reading

解決,Docker ERROR: Bad response form Docker engine

在Mac安裝新版本 OS 之後,出現了 docker-compose 無法正常 up 的情況

解決方式:

開啟 docker premerence

點選 Reset > Reset to factory default

接著需要重新登入 Docker

再次啟動之後,再透過 up 重新載入 images ,完成啟動

完成

Continue Reading

阿里雲, mac iterm2 ssh 登入

直接透過 ssh 最基本的連線方式,連接到阿里雲

首先,取得阿里雲實例的公網IP

然後透過 ssh 直接進行連線,及輸入密碼

Continue Reading

CentOS 遠程建立 Docker & Docker-compose

添加 yum

yum install epel-release –y
yum clean all
yum list

移除舊版,安裝新版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

確認移除

docker info

安裝必要的 repository

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

使用 stable repository

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

啟用 edge (可自行決定是否啟用)

sudo yum-config-manager --enable docker-ce-edge

(若不想啟用 edge,也可以直接關閉):

sudo yum-config-manager --disable docker-ce-edge

安裝新版本

sudo yum install docker-ce

檢查安裝結果

docker info

啟動/關閉

sudo systemctl start docker     #運行Docker守護進程
sudo systemctl stop docker      #停止Docker守護進程
sudo systemctl restart docker   #重啟Docker守護進程

安裝 Docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

添加權限

Continue Reading

如何將主 DNS子網域point到另一個網域子資料夾

設定主網域指向 B 網域

在主網域的 DNS A-record ( 如果用 IPv6 則設定 AAAA-record ) 指向到另一個網域的IP

注意,DNS 只能指向 IP ,無法指向該IP的子資料夾

另一個網域的主伺服器設定請求轉導

當主 DNS point 到另一個子網域後,另一個子網域本身應該要 point 到一台主機

則需要在這一台主機進行設定 Virtual hosting

來對於子網域的 redirect/equate 指向子資料夾的部分,

例如,由 subdoname.A.com 請求過來時,會透過這個方式: ${DocumentRoot of B.com}/folder ,會提供 folder 內容

https://vlemon.com/blog/google-cloud-platform/how-to-create-sub-domain-in-google-cloud-compute-engine/

Continue Reading

MAC 無法使用 git 狀況排解:xcrun: error: invalid active developer path...missing xcrun at:

在Mac 更新 cli 後發生 git 無法適用的情況

錯誤訊息:

git ixcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

解決方式:

輸入下方指令,安裝完成即可解決

xcode-select --install

Continue Reading

DNS Resource Record (RR)

DNS Server

負責處理 DNS 相關服務

Zone File

每一個域名都會有相對應的檔案,稱為區域檔案(Zone File),每一個 Zone File 都可以各自設定類型(Resource Record, RR),底下則介紹一些 RR 及相關用法

SOA - Start Of Authority

在 zone file 一開始會進行 SOA 定義,

在 SOA 描述 name server, version … 等,並且指定要授權的主機及管理者信箱

Continue Reading

gcloud SDK 安裝及建立 google repository

下載 gcp sdk

https://cloud.google.com/sdk/docs/

下載 macOS 64 位元 (x86_64)

Continue Reading

Git flow 簡記

Git flow 是一個 Git 開發分枝開發流程的建議

演化至今,各官方也陸續依照相關建議提出自家的開發流程,如 GitHub Flow、Gitlab Flow

根據 Git flow 建議,可以將分枝區分為以下幾種

Continue Reading

Git 提交訊息樣式建議

Git 官方建議的提交訊息樣式,可以讓提交訊息更加容易理解及管理

原則上,可以將訊息分成三種型態

  • 類型:標題
  • 內容
  • 註解

類別

首先,在 commit 標題之前,建議要先清楚定義類別,定義方式有以下建議:

Continue Reading

Linux 命令-小記

簡單紀錄,需要用的一些指令

取得 linux 版本

查看核心 linux 版本,如果是 CentOS ,會看到 Red Hat 相關資訊,因為 CentOS 是基於 RH

cat /proc/version

Continue Reading

GCP 建立 SSH 連線登入VM方式

進入 GCP dashboard

查看VM

右邊選單> Compute Engine

這裡面會列出 VM 執行個體

Continue Reading

Mac $PATH 環境變量設置及查詢

將 installer 變數放在 PATH 環境變數中

就能讓我們直接在 bash 直接下達 installer 的指令

這裏介紹 Mac PATH 環境變數的設置方式

Continue Reading