2022年3月16日 星期三

ssh-copy-id ansible使用

在開發ansible佈署功能主要都是透過ssh

ssh連線時如果希望不用每次輸入密碼

要透過ssh-copy-id xxx@192.168.0.99

將本機的public key丟到遠端主機上

這樣之後就直接連線不需要輸入密碼


ex:

以ansible佈署的架構來看

假設區網內的幾台主機功能分別是

1.本機 192.168.0.60

2.控制機 192.168.0.99

3.應用ap 192.168.0.100

如果我們要透過控制機(99)去操作應用ap(100)

則需要在99上把99的public-key丟到100上

  ssh-copy-id user@192.168.0.100

如果ansible(99)要控制的是也是99上的程式

也要copy id給自己

  ssh-copy-id user@192.168.0.99

這樣在client機器上可以透過ssh控制control(99)機器去

代為操作99跟100的服務


2022年3月1日 星期二

pkg讀取資料檔案路徑

使用pkg將node應用程式封裝成各平台的執行檔

當執行時要讀取其他檔案的路徑

其他檔案有無被封裝 路徑是有差異的

舉例來說

有一個專案目錄

node_proj/

  tmp/

  js/

js目錄內的檔案要被封裝到執行檔內

tmp目錄內的檔案不封裝到執行檔

執行封裝好的執行檔時

1.封裝到執行檔的目錄

  在package.json內需設定要封裝的檔案

  "pkg": {

    "scripts": [

      "./js/**/**/*.js"

    ],

    "assets": ''

  }

  封裝好的執行檔在執行時 js/目錄會是在'snapshot/node_proj/js/file.js'

  在程式內要讀取的路徑需以相對路徑方式寫

  path.resolve(__dirname,'..','js','file.js')

2.若是要讀取未被封裝在執行檔內的檔案

  path.resolve('.','tmp','hello.txt')

  會讀到執行目錄下的檔案


2022年2月17日 星期四

nginx基本操作

一.完全移除

  sudo apt-get remove nginx nginx-common

  sudo apt-get purge nginx nginx-common

  sudo apt-get autoremove

二.重新安裝

  sudo apt-get install nginx

三.操作

  啟動 sudo systemctl start nginx

  停止 sudo systemctl stop nginx

  重啟 sudo systemctl restart nginx

  重載config sudo nginx -s reload

四.設定檔

  /etc/nginx/available-sites/

2022年1月28日 星期五

Linux ssh 使用

一般遠端要進入Linux 都是使用ssh

使用ansible操作也都是透過ssh

確認遠端要連線的主機允許連線

一.遠端主機安裝與啟動ssh服務

  要遠端連線的主機

  檢查/etc/init.d/下 有沒有ssh 或sshd

  若沒有

  安裝

  sudo apt-get install ssh

  啟動

  sudo systemctl start ssh.service

  停止

  sudo systemctl stop ssh.service

  若22 port沒有對外開放

  sudow ufw allow 22 開啟

二.client端連線

  除了使用帳密登入外

  可以將client的ssh public key copy到遠端主機上

  ssh-copy-id ozzy@xxxx (這是帳號@遠端ip) 

  之後就可以以ssh key登入

  ssh ozzy@xxxx

三.清除knows_host

若連線的機器有換或是重裝系統

需要先移除原本紀錄在know host內該ip的紀錄

ssh-keygen -R 192.168.0.99

重新ssh連線就會產生該ip新的host紀錄了

2022年1月14日 星期五

nginx回應文字訊息sample

需要nginx簡易的回傳文字訊息

 location /test_return {

        default_type  text/plain;

        return 200  '回傳文字';

    }