Linux

Terraform 安裝與運行

Terraform 安裝與運行

Terraform 安裝與運行

Terraform 是由 HashiCorp 開發的一套 Infrastructure as Code 工具。

這裡記錄 Terraform 基本安裝及設定的步驟,示範如何在 GCP 建立一個 instance。

Continue Reading

GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine

GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine

GCP 佈建 Kubernetes 入門 - 使用 Kubernetes Engine

在這裡記錄如何從 GCP 建立起 Kubernetes Engine 建立起 cluster 流程:

Continue Reading

Ansible 配置管理與部署入門

Ansible 配置管理與部署入門

Ansible 配置管理與部署入門

簡介

Ansible 是一個開源的系統自動化工具,擁有配置系統,任務排程,可以透過代碼來管理我們的infra,可以進階設計出一些 CI/CD 流程等功能。Ansible 預設使用 SSH 來進行遠端主機管理,Ansible 1.3 之後的版本可以透過本地的 OpenSSH 與遠端的主機進行通訊,如果是在比較老舊的作業系統,則會採取 paramiko 的相對應做法。

Continue Reading

Kubernetes (K8S) - Mac 本地執行練習上手 如何用 K8S 快速佈建一個 Go Server

Kubernetes (K8S) - Mac 本地執行練習上手 如何用 K8S 快速佈建一個 Go Server

Kubernetes (K8S) - Mac 本地執行練習上手 如何用 K8S 快速佈建一個 Go Server

如何在 Mac 本地快速透過 K8S 啟用一個服務,這裡以一個簡易的 go server 為例子,一步步來說明如何啟動。

Continue Reading

SSH Secure Tunneling (Proxy&Port Forwarding)

SSH Secure tunnel forwarding

在 SSH 連線有一個 Secure Tuunel (加密通道)方式,

可以將 local 與remote server 之間建立一條 secure tunneling 通道。

這通道的方向可以是 local -> server 或者 server -> local。

首先關於 local to server 以 L (left) 表示, server to local 以 R (right) 表示。

其中在通道的傳輸都是透過 SSH 22port 來做 proxy,以下會再舉例說明:

Continue Reading

如何在 CentOS7 安裝 FFmpeg

如何在 CentOS7 安裝 FFmpeg

FFmpeg 是一個非常強大的影音串流及轉檔服務,這裡主要說明如何在 CentOS7 安裝 ffmpeg

安裝 FFmpeg

在 CentOS7 沒有 FFmpeg 相關的核心套件可以直接下載,因此需透過 Nux Dextop repository 來安裝。

首先,先更新 package

Continue Reading

解決 Docker build apt-get update "-yqq" failed Failed to fetch http://xxx 與 IPv4 forwarding is disabled 問題

在試用某家 VPS 廠商的服務時,發現在執行一些服務安裝時,使用 apt-get update -yqq 出現了一些錯誤,在這裡記錄下問題發生的可能原因及解決方案:

WARNING: IPv4 forwarding is disabled. Networking will not work

遇到這問題,解決方式可以直接在系統 sysctl 設定加入允許 ipv4 forward

開啟 sysctl 設定檔案

vim /etc/sysctl.conf

加入以下代碼

Continue Reading

Linux Firewall-cmd 防火牆安裝, 允許/禁止 IP, Port 用法介紹

Firewalld 防火牆常見用法介紹

Linux 常見防火牆有 iptables 與 firewalls ,這裡主要針對 firewalld安裝及常見用法進行說明,這裡以 CentOS7 來進行說明:

Continue Reading

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

不同主機之間經常會需要做資料上傳與下載,一般常見透過 FTP, Web, 第三方軟體來進行傳輸,在這裡要介紹的是,如何透過 Linux 的 scp 指令來進行檔案複製。

Continue Reading

Kubernetes 的 Node 節點 ROLES 顯示 none,手動設定 ROLES 方式

Kubernetes 的 Node 節點 ROLES 顯示 none,手動設定 ROLES 方式

K8S 在指派 Node 節點後,查看 Node 會發現 ROLES 除了master ,其他節點都顯示為 none

> kubectl get node

NAME                  STATUS   ROLES    AGE   VERSION
k8s-node1             Ready    <none>   74m   v1.18.8
k8s-master            Ready    master   45h   v1.18.6

這時發現 Node 節點的 ROLES 顯示為 none,

可以透過手動方式設定 ROLES

Continue Reading

解決 kubernetes - coredns 顯示 Pending 與 master 處於 NotReady 狀態

在 CentOS7 環境,K8S 的 Master 透過 kubeadm join 啟動後,先查看 pods 處於 Pending 狀態

Continue Reading

K8S Kubeadm join token 過期 - 重新產生 token 與 ca sha256 hash

在 Kubernetes 由於 kubeadm 產生的 token 有效時間為 24 小時,若過期則需要重新產生

重新建立 token 可執行以下指令重建:

kubeadm token create

查看 kubeadm token

Continue Reading

Linux 主機 NTP 系統時區、時間同步、時間校正

時區校正是相當重要的工作,若時區沒有正確對應,可能會出現驗證憑證問題、存取誤差以及安全性問題。

因此,可以透過 NTP 網路校正的方式來達到Linux多主機時間校正。

在校正前,先統一時區(可依照需求調整),例如 下方式 Linux 設定 UTC 及 台北(Asia/Taipei) 時區的方式

Continue Reading

認識背景執行 Daemon 與手動建立 Service入門

認識背景執行 Daemon 與手動建立 Service入門

Daemon 是什麼

Daemon 直接翻譯,意思為 “守護程序, 惡魔, 魔鬼, 妖魔”。

在這裡會解釋什麼是 Daemon ,以及基本的一些用法。

在系統中,都會依照需求安裝許多服務,但這些服務本身並不會自動啟用,針對啟用服務程序,即稱為 Daemon。

(其實,通常溝通方式都是說:“請幫忙啟動某個服務”。基本上不太會去區分 service 與 daemon,不太會強調背景執行 daemon 這件事情,因為,除非你有特殊需求,否則背景執行應該視為理所當然)。

Continue Reading

解決 Laravel 每日建立分隔 log 檔案,出現權限 Permission Deny 問題

解決 Laravel 每日建立分隔 log 檔案,出現權限 Permission Deny 問題 如果設定排程執行 php artisan 預設會使用 root 來執行,就會導致產生的 log 檔案會有權限問題。 解決方式,首先關閉 root 產生的排程,開啟排程檔案將執行的程式先註解 crontab -e 接著,用 www-data 身份來設定排程 crontab -u www-data -e 例如,以下設定每三十分鐘執行 30 * * * * php /var/www/html/artisan course:create >> /dev/null 2>&1 以上設定完畢後,先刪掉今天產生的 storage/log/ log 檔案,

Continue Reading

如何選擇 AWS RDS Instance 避免 Too many connections

在 AWS 的 RDS Instance ,不同方案 CPU跟記憶體 都有差別,因此在預設時,都會針對主機規格幫你配置好可負載的人數,避免Instance崩壞,通常可以針對你的網站預估同時在線人數來推估適用的方案。

首先,先說明關於 RDS 針對使用者連線相關的配置參數。

Continue Reading

實戰 Nginx 設定技巧:連線數與效能

實戰 Nginx 設定技巧:連線數與效能

這裡針對實際運行服務,記錄一些設定技巧

首先,從 Nginx 的設定檔 /etc/nginx/nginx.conf

nginx.conf 通常為了可將多站點的設定檔獨立分存,一般都會有以下設定,指定將某個資料夾的設定檔 include 到 nginx.conf 裡。

Continue Reading

理解 程序(Process)、執行緒(Thread)、協程(Coroutine) 、生成器(yield) 差異

Process 是電腦中已執行 Program 的實體 每一個 Process 是互相獨立的 同一個 Process 中會有很多個 Thread ,每一個 Thread 負責某一項功能 同一個 Process 底下的 Thread 共享資源,如 記憶體、變數等 在多執行緒中(Multithreading),執行緒屬於同步機制,在同時間運行的執行緒,若兩個執行緒若同時存取或改變全域變數(Global Variable),則可能發生同步(Synchronization)問題。若執行緒之間互搶資源,則可能產生死結(Deadlock) Coroutine的程式概念, 在1958年由Melvin Edward Conway提出, 是一種類似多執行緒的單執行緒程式概念, 且可以避開多執行緒的race condition問題, 因為他是單執行緒!!!, 所以不會有第二個執行緒來搶著操作.

Continue Reading

GCP 磁碟擴充容量流程 [解決]

查詢磁碟分割

sudo lsblk

>>>輸出
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  30G  0 disk 
└─sda1   8:1    0  10G  0 part /

分配容量

將剩下的空間都分配給 sda1

(注意,這裡 sda 與 1 之間有空格)

Continue Reading

Linux - CentOS7 安裝 VirtualBox

這裡記錄如何在 CentOS7 安裝 VirtualBox

更新 yum

首先更新系統至最新版本

yum update -y

Continue Reading