顯示具有 Google Cloud Platform 標籤的文章。 顯示所有文章
顯示具有 Google Cloud Platform 標籤的文章。 顯示所有文章

2020年6月2日 星期二

從MAC使用gcloud SDK傳輸檔案到GCP

為了建立在PC、MAC上都可以連到GCP測試站的開發環境;但若用GCP console的檔案傳輸需要透過Bucket或單個檔案上傳,實在有點麻煩。
所以就試著用gcloud SDK以終端機command line的方式來上傳檔案 。


安裝GCP套件需要安裝Python
-MAC中預設的是python2.7,而GCP套件目前可支援Python2.7,但未來會只支援Python3以上版本,所以就來研究一下怎麼安裝Python3囉。


開啟終端機進行Python3安裝
1) 要先安裝Brew,輸入以下指令
-ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2) 安裝Python3,輸入以下指令
-brew install python3


安裝GCP的套件
- 下載的檔案解壓縮後,放到想要的目錄中
- 在終端機中輸入 [目錄名稱]/google-cloud-sdk/install.sh
- 會問題要不要回報問題給GCP及重新設定路徑,可以選擇不輸入就略過
- 最後重新開啟終端機


安裝GCP SDK,在終端機中輸入以下指令
gcloud init
- 會開始在本機建立一個預設設定檔(default configuration)
- 接著會要求你登入Google帳號
- 會詢問要選擇哪個在GCP建立的專案,或新建專案
- 詢問要不要變更區域資料
- 設定後就安裝完成了

設定GCP專案中繼資料的區域資訊

設定專案中的中繼資料,需要設region=[選擇的區域]及-zone=[選擇的區域]

gcloud compute project-info add-metadata --metadata google-compute-default-region=asia-east1,google-compute-default-zone=asia-east1-b


設定Client預設設定檔中的區域資訊
再來要設定Client端社區域資訊,這樣使用指令時才不用每次都要輸入

gcloud config set compute/zone asia-east1-b

gcloud config set compute/region asia-east1


連線GCP VM,在終端機輸入以下指令
gcloud compute ssh [Instance_name]
- 輸入passphrase後,就會產生SSH public key跟Private Key並存在電腦中
- 之後就可以從終端機輸入gcloud compute ssh [Instance_name] 連線到GCP的VM了

設定SSH 中繼資料
- 產生後的SSH Key會存在 預設路徑user/[使用者名稱]/.ssh/
- 目錄中會有兩個檔案*.pub是public key, 另一個沒有副檔名的是private key 
- 將public key用文字檔打開並複製
- 進入GCP console compute engine > 中繼資料 > 安全殼層金鑰
- 新增,然後將複製的public Key貼上後儲存 
- 這樣用完成SSH的設定了
- 這個Key就會是root帳號的Key,以下傳輸檔案時就可以帶root作為帳號來進行操作


傳輸檔案
先確認目前終端機是在本地不是連到VM上 (輸入指令回傳找不到目錄好幾次,才發現原來已經SSH連到VM了.. Orz)

整個目錄上傳指令: gcloud compute scp --recurse [本地目錄] [帳號]@[VM_名稱]:[VM目錄]
- 在輸入兩次passphrase,就會開始上傳了。
* 在前面的SSH Key設定中沒有帳號,這個步驟可以帶root;回到GCP console中的中繼資料中看,會多一個root的金鑰

- 單一檔案上傳指令: gcloud compute scp [本地目錄] [帳號]@[VM_名稱]:[VM目錄]


GCP連線相關問題

ERROR: (gcloud.compute.scp) Could not fetch resource:

 - Insufficient Permission: Request had insufficient authentication scopes.

需要重新驗證身份
指令-sudo gcloud auth login
輸入後再重新登入Google 帳號就可以了

ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255]

專案可能有instance或區域重新設定:需要更新SSH 金鑰
指令-sudo gcloud compute config-ssh
出現這問題時,不一定靠更新SSH可以排除... 還需研究






2020年4月13日 星期一

網站摸索筆記:從windonws傳輸檔案到GCP

從本機傳輸多個檔案到Google Cloud Platform,
可以透過SCP FTP來傳輸,步驟如下:

1) 建立Key:
     - 可以使用Putty來建立Private Key、Public Key(Putty下載https://www.putty.org/)
     - Private Key用於傳輸時進行驗證
     - Public Key則要加在GCP的VM SSH設定中

2) 透過winSCP進行連線
    - 安裝winSCP (winSCP下載https://winscp.net/download/WinSCP-5.17.3-Setup.exe)
    - 連線時選擇Private Key


下載Putty建立Key
https://www.putty.org/
-安裝後到目錄中,執行puttygen.exe


儲存Private Key
- 在如下畫面中,在key comment中輸入用戶名稱(這個名稱會在FTP連線時使用)
- 然後按儲存Private Key(這個Key也會在FTP連線時使用)


複製Public Key 如下Public Key文字


進入GCP的中繼資料SSH設定頁面
- 按下編輯,並貼上複製的Public Key到金鑰欄位


- 按下儲存就新增完成了


開啟winSCP輸入連線資料
- 檔案協定選擇SCP
- 輸入主機名稱
- 輸入使用者名稱(這使用者名稱要與建立Key時相同)
- 然後點擊進階

- SCP/Shell 中選擇sudo su,使用最高權限才可直接上傳檔案到想要的目錄中

- 身分核對中選擇資料的檔案


- 完成設定後回到連線畫面,按下登入,就可以連線到GCP的VM中了





2020年4月12日 星期日

網站摸索筆記:GCP 安裝MySQL與設定

GCP VM安裝php, Apache後,再來安裝MySQL;
並讓開發的遠端可以連到MySQL中,這樣開發完成後再把網頁放到VM就上線了。

安裝MySQL
-輸入指令:sudo apt-get install mysql-server 

設定MySQL連線
-輸入指令:mysql_secure_installation 
- 會開始設定mysql的帳號root的密碼
- 以及密碼安全性的相關設定

啟動MySQL
-輸入指令:sudo systemctl start mySQL

確認MySQL服務
- 輸入指令:systemctl status mysql.service
- 出現如下Active 的資訊就表示服務啟動了


修改MySQL設定
- 預設MySQL是只允許本機存取,因此要修改成允許遠端存取
-  sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
- 將blind-address這一行的IP改成自己要遠端的IP,若不限制可以加上#註解掉



重新啟動MySQL
-輸入指令:sudo systemctl restart mySQL

嘗試登入SQL
- 輸入指令:mysql -u root -p
- 再輸入root帳號的密碼,看到以下畫面表示登入成功
- 輸入exit; 離開SQL


安裝php-MySQL套件
- 輸入指令:sudo apt install php-mysql
- 這動作安裝後php存取mysql的程式才能正常運作


接著設定VM的防火牆連線3306
- 因為會在本機開發,連到GCP上的資料庫,所以要調整VM設定
- 點擊GCP選單中的VPC網路>防火牆規則


-新增防火牆規則


-防火牆設定
 輸入名稱、說明,流量方向要選輸入

- 設定目標標記來建立VM跟防火牆規則的關連
  如下在VM中的網路標記就要加上dbserver,VM就會套用這個防火牆規則

測試telnet 
- 完成設定後可以從本機命令提示字元telnet [IP] 3306來測試
- 看到以下畫面就表示可以從本機連線到GCP的資料庫了


測試PHP 存取資料庫
- 以下PHP範例可測試資料庫連線
- sudo vi /var/www/html/dbconnect.php
<?php
$dbhost='localhost:3306';
$dbuser='root';
$dbpass='[root帳號的密碼]';
$link=mysqli_connect($dbhost,$dbuser,$dbpass);
if(! $link) {
    die ('DB連線失敗'. mysqli_error($link));
}
echo 'DB連線成功';
?>
- 出現DB連線成功就表示完成PHP與MySQL的環境設定


接下來就可以在不同電腦上開發程式,然後都連GCP的資料庫了。

2020年4月6日 星期一

網站摸索筆記:GCP VM安裝 Apache、php服務,網頁檔案上傳

建立GCP VM完成後,再來繼續安裝網站VM應有的服務。

VM執行個體頁:
點擊VM個體的名稱。

點擊SSH,開啟SSH連線視窗:


點擊SSH,開啟SSH連線視窗:
接下來要在這視窗輸入安裝服務的指令,
指令來自Google的教學,也有其他作業系統的設定方式。



安裝Apache, PHP:
sudo apt-get update
sudo apt-get install apache2 php libapache2-mod-php

測試安裝結果
可以從VM清單中直接用瀏覽器開啟IP位置,
就會顯示已安裝的Apache預設頁面



(上傳方法1)使用SSH上傳網站檔案:
SSH視窗有一個上傳檔案的功能,上傳後檔案會在路徑Home之下,
但是Apache的服務站台路徑為 /var/www/html/,所以就要再將檔案搬到對的路徑中。



輸入移動檔案的指令:
sudo mv GCP_test1.html /var/www/html/
IP位置後加上檔案名稱,就可以開啟網頁了。



(上傳方法2)
從選單中找使用 Storage功能

Storage設定頁:
建立值區(英文是Bucket明明很清楚 )

Storage建立頁:
設定的內容就先用預設的。
Storage管理頁:
設定完後,就可以上傳檔案了。


從VM中下載Storage的檔案
sudo gsutil cp -r gs://web1_storage/ /var/www/html/
複製整個目錄檔案的指令 sudo gsutil cp -r gs://[bucket_name] [目標路徑]
如果只要複製一個檔案指令為 sudo gsutil cp gs://[bucket_name]/[檔名] [目標路徑]
可參考gsutil/commands

測試網站
從IP路徑下/bucket_name/page_name.html,就可以測試網站了




2020年4月5日 星期日

網站摸索筆記:建立Google Cloud Platform VM

聽說Google Cloud Platform的服務有VM、Firewall、DB,還有很多API可以使用,
只是對於初心者來說,從基本的建立VM開始吧。

只要有Google 帳號的都可以使用Google Cloud Platform,


進入GCP顯示如下畫面:
由於使用專案方式來管理各項服務,所以要先建立一個專案


選擇專案視窗:
可以從選擇專案的地方來新增專案


新增專案畫面:
輸入專案名稱,位置的部分我不清楚有甚麼影響,所以就沒選擇了。

專案Dashboard畫面:
新增完成後會看到以下畫面。


功能選單:
建立專案後,在來就要建立專案下的VM;
Compute Engine中,點擊VM執行個體


因為還沒有VM執行個體,所以需要先建立。

建立執行個體畫面:
- 沒特別想設定的名稱,就用預設的
- VM區域選擇台灣,應該會快一點
- 機器類型 選擇f1-micro,這部分主要影響費用,所以先選一個便宜的。
- 開機磁碟 是選擇VM作業系統,我是選擇Ubuntu,這可以看個人需求來設定。
- 防火牆 通訊方式允許http來連線,因為預計要放個網站;若要綁定網域且設定SSL,則要勾選https
- 接這按下建立,就完成囉。


VM執行個體頁 (完成):
建立後在VM執行個體中就可以看到剛新增的VM了。



*開機磁碟可以選擇以下作業系統: