2021年2月19日 星期五

安裝helm 3

https://github.com/helm/helm/releases
cd /opt && wget https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz
wget https://get.helm.sh/helm-v3.5.2-linux-amd64.tar.gz
tar -xvf helm-v3.5.2-linux-amd64.tar.gz
chown root.root helm3 -R
cat > /etc/profile.d/helm3.sh << EOF
export PATH=$PATH:/opt/helm3
EOF
source /etc/profile.d/helm3.sh
[root]# helm3 version
version.BuildInfo{Version:"v3.5.2", GitCommit:"167aac70832d3a384f65f9745335e9fb40169dc2", GitTreeState:"dirty", GoVersion:"go1.15.7"}

2021年1月25日 星期一

TradingView 找出K線的錘頭線及射擊之星

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading
// @version=4
study("PSMC - Hammer & Shooting Stars", overlay=true)

// Get user input
fibLevel = input(title="Fib Level", type=input.float, defval=0.333)
colorFilter = input(title="Color Must Match", type=input.bool, defval=false)

// Calculate fibonacci level for current candle
bullFib = (low - high) * fibLevel + high
bearFib = (high - low) * fibLevel + low

// Determine which price source closes or opens highest/lowest
lowestBody = close < open ? close : open
highestBody = close > open ? close : open

// Determine if we have a valid hammer or shooting star
hammerCandle = lowestBody >= bullFib and (not colorFilter or close > open)
starCandle = highestBody <= bearFib and (not colorFilter or close < open)

// Plot the signals to the chart
plotshape(hammerCandle, style=shape.arrowup, location=location.belowbar, color=color.green)
plotshape(starCandle, style=shape.arrowdown, location=location.abovebar, color=color.red)

// Trigger alerts
alertcondition(hammerCandle or starCandle, title="Hammer or Shooting Star Alert", message="{{ticker}}")

2021年1月21日 星期四

redis master slave failover

Redis master slave模式的只有二台server下 fail over作法
1. 指定一台redis server為 master,另一台為slave 
2. 在slave server設定crontab執行以下shell script 
3. 執行邏輯是 
a. 當master,及slave都回PONG,那就設定master server為master, slave server為slave
b. 當只有slave回PONG,那就將slave server改為master, 並將hosts 的 lan.redis IP改為slave IP
c. 當只有master回PONG, 將hosts 的lan.redis IP改為master
d. 都連不上..., email通知?
也就 master reids修復後,就符合條件 a或 c; 
master redis faile時,則符合條件 b 條件d, 
沒有可服務的redis, 需通知維運人員來處理。
slave=$(/usr/bin/docker exec -i redis_cli bash -c "redis-cli -h 172.20.0.6 ping" | cut -c 1-4)
master=$(/usr/bin/docker exec -i redis_cli bash -c "redis-cli -h 10.123.123.20 ping" | cut -c 1-4)
echo "Master=$master"
echo "slave="${slave}
if [ "${master}" == "PONG" ] && [ "${slave}" == "PONG" ]; then
  slave_role=$(/usr/bin/docker exec -i redis_cli redis-cli -h 172.20.0.6 info replication | grep role | cut -c 6-10)
  if [ "${slave_role}" == "maste" ]; then
      master_role=$(/usr/bin/docker exec -i redis_cli redis-cli -h 10.123.123.20 info replication | grep role)
      slave_role=$(/usr/bin/docker exec -i redis_cli redis-cli -h 172.20.0.6 info replication | grep role | cut -c 6-10)
      echo "master_role(10.123.123.20): "${master_role}
      echo "slave_role(10.123.123.11):"$savle_role
    #10.123.123.11為slave, 10.123.123.20為master
      /usr/bin/docker exec -i redis_cli redis-cli -h 172.20.0.6 slaveof 10.123.123.20 6379
      /usr/bin/docker exec -i redis_cli redis-cli -h 10.123.123.20 slaveof no one
    #lan.redis 為 10.123.123.20
      sed -i 's/172.20.0.6/10.123.123.20/g' /home/docker/nginx-dev/vol/auth_api_dev/etc/hosts
  fi
elif [ "${master}" != "PONG" ] && [ "${slave}" == "PONG" ]; then
 #master 10.123.123.20連不上去,改至 10.123.123.11為 master
  /usr/bin/docker exec -i redis_cli redis-cli -h 172.20.0.6 slaveof no one
 #lan.redis 為 10.123.123.11
  sed -i 's/10.123.123.20/172.20.0.6/g' /home/docker/nginx-dev/vol/auth_api_dev/etc/hosts
  echo "遠端 10.123.123.20 redis連不上,改連 10.123.123.11(172.20.0.6) redis"
elif [ "${master}" == "PONG" ] && [ "${slave}" != "PONG" ]; then
 #10.123.123.20為 master
  /usr/bin/docker exec -i redis_cli redis-cli -h 10.123.123.20 slaveof no one
 #lan.redis 為 10.123.123.20
  sed -i 's/172.20.0.6/10.123.123.20/g' /home/docker/nginx-dev/vol/auth_api_dev/etc/hosts
  echo "本機 10.123.123.11(172.20.0.6) redis連不上,改連master 10.123.123.20 redis"
else
  echo "10.123.123.20 and 10.123.123.11的 redis都連不上"
fi

2021年1月20日 星期三

kong gateway api

curl -i -X POST http://172.27.0.4:8001/services \
  --data name=backend \
  --data url='https://uon4wsbc.strangled.net'
  
curl -i -X POST http://172.27.0.4:8001/services/backend/routes \
  --data 'paths[]=/v1' \
  --data name=backend
  
http://localhost:8000/v1/monitor/healthcheck

2021年1月19日 星期二

Ubuntu 18.04 透過 netplan 設定網路卡 IP

cd /etc/netplan
vi 01-network-manager-all.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
			dhcp4: yes
            nameservers:
              addresses: [8.8.8.8,8.8.4.4]

sudo netplan try