顯示具有 CentOS 標籤的文章。 顯示所有文章
顯示具有 CentOS 標籤的文章。 顯示所有文章

星期一, 4月 19, 2021

From Dynamic to Static IP Address on CentOS 7

Get the current network status related on some Network Interface (ex: ens192):

Now we get some important information:

  • 192.168.109.56/23 => IP 192.168.109.56 & MASK 255.255.254.0
  • GATEWAY=192.168.109.254

We keep all the settings except "dynamic", in /etc/sysconfig/network-scripts/ifcfg-ens192:

  • ONBOOT=yes
  • NM_CONTROLLED=no
  • BOOTPROTO=static
  • IPADDR=192.168.109.56
  • NETMASK=255.255.254.0
  • GATEWAY=192.168.109.254

After configuration saved, restart network service and verify:

  • service network restart
  • ip a show ens192

星期二, 3月 23, 2021

NFS on CentOS 7

  •  Server Side (server.nfs.net)
    • install
      • yum install nfs-utils
    • share /var/share
      • mkdir /var/share
      • chmod 755 /var/share
      • chown nfsnobody:nfsnobody /var/share
    • service
      • systemctl start rpcbind
      • systemctl start nfs-server
      • systemctl enable rpcbind
      • systemctl enable nfs-server
    • vi /etc/exports
      • /var/share *(ro,wdelay)
      • /var/share client.nfs.net(rw,sync)
    • restart
      • systemctl restart nfs-server
    • firewall
      • firewall-cmd --permanent --add-service=nfs
      • firewall-cmd --permanent --add-service=mountd
      • firewall-cmd --permanent --add-service=rpc-bind
      • firewall-cmd --reload
  • Client Side (client.nfs.net)
    • install
      • yum install nfs-utils
    • share mapping
      • mkdir -p /mnt/nfs/var/share
      • mount -t nfs server.nfs.net:/var/share /mnt/nfs/var/share
    • vi /etc/fstab (optional, auto mount after reboot)
      • server.nfs.net:/var/share /mnt/nfs/var/share nfs defaults 0 0

星期二, 5月 19, 2020

Building private and cheaper ngrok-like tunnels

  • In mrvm.net, you can cost USD$4 / year for 1 IPv4 address and 20 ports. In my case, 198.204.227.x 21001 ~ 21020.
  • The ssh for mrvm.net is using another port. So you can control your VPS like ssh user@198.204.227.x -p 21021.
  • In noip.com, you can register 3 free domain names like abc.hopto.org or xyz.ddns.net.
  • Using inlets, you can expose your intranet service on the cloud:
    • VPS
      • export token=$(head -c 16 /dev/urandom | sha1sum | cut -d" " -f1)
      • inlets server --port=21001 --token=$token
    • DEV
      • python -m SimpleHTTPServer 8000 (or your service)
      • inlets client --remote=abc.hopto.org:21001 --upstream=http://localhost:8000 --token=...
    • Client
      • curl http://abc.hopto.org:21001

星期四, 5月 14, 2020

Install Appium on CentOS 7

  • Refer this guide, install Node.js and npm.
  • If you following this guide immediately, Appium install will fail caused by EACCES. So refer this guide for reinstall nvm forcibly.
  • Relogin.
  • Reinstall npm and Node.js by nvm, command: "nvm install node".
  • Now you can install Appium without error.

星期二, 5月 14, 2019

New Selenium Node (Chrome / Firefox) on CentOS without GUI

  • Assume Selenium Hub listen on docker host 172.17.0.1:4444
  • docker (refer this)
  • docker-compose (refer this)
  • docker-compose.yml (updated from here)
    • version: "3"
    • services:
      • chrome:
        • image: selenium/node-chrome:3.141.59-neon
        • volumes:
          • - /dev/shm:/dev/shm
        • environment:
          • - HUB_HOST=172.17.0.1
          • - HUB_PORT=4444
          • - REMOTE_HOST=http://<Host_or_IP>:6666
          • - NODE_MAX_INSTANCES=5
        • ports:
          • - "6666:5555"
      • firefox:
        • image: selenium/node-firefox:3.141.59-neon
        • volumes:
          • - /dev/shm:/dev/shm
        • environment:
          • - HUB_HOST=172.17.0.1
          • - HUB_PORT=4444
          • - REMOTE_HOST=http://<Host_or_IP>:7777
          • - NODE_MAX_INSTANCES=5
        • ports:
          • - "7777:5555"

星期三, 4月 24, 2019

Quick Start: Selenium Grid

How can we create a Selenium Grid Environment quickly? If you have docker-compose already, just refer this, save as docker-compose.yml, and run "docker-compose up -d" to start it. That's all.

How to prove it worked? we need:
  • selenese-runner.jar download from here
  • check your docker host ip address like "ip addr | grep docker0"
  • any workable side file
If selenese-runner.jar and my.side in the current directory, start another docker container:
  • docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openjdk java -jar selenese-runner.jar --driver remote --remote-url http://<DOCKER_HOST_IP>:4444/wd/hub --remote-browser <BROWSER> <WORKABLE.side>
<BROWSER> can be chrome or firefox.

星期二, 4月 16, 2019

CentOS7, Firewalld and Docker

In the past, I always stop firewalld for Docker. But it's not secured. According to this, if we update firewalld version to 0.4.3.2-9 can fix this, or running these command:
  • nmcli connection modify docker0 connection.zone trusted
  • systemctl stop NetworkManager.service
  • firewall-cmd --permanent --zone=trusted --change-interface=docker0
  • systemctl start NetworkManager.service
  • nmcli connection modify docker0 connection.zone trusted
  • systemctl restart docker.service

星期五, 1月 11, 2019

Docker & Docker Compose on CentOS

  • Docker
    • sudo yum install yum-utils
    • sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    • sudo yum install docker-ce
    • sudo systemctl start docker
    • (optional) sudo systemctl enable docker
    • sudo usermod -aG docker `whoami`
    • (logout, then login again)
    • (optional) docker ps
  • Docker Compose
    • (docker installed)
    • (check latest version of Docker Compose from here, ex: 1.23.2)
    • sudo curl -L “https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
    • sudo chmod +x /usr/local/bin/docker-compose
    • (optional) docker-compose --version

星期日, 8月 05, 2018

offline install yum package - MariaDB

以安裝 MariaDB 為例,由於 CentOS YUM repository 並沒有最新版,要自己上 Maria 官網看這個說明下載,常做也是有點麻煩。這次希望準備一個「離線版」安裝包,既不用等網路,又可減少安裝程序。首先參考這篇的前置動作,下載與目錄準備:
  • sudo yum install yum-plugin-downloadonly yum-utils createrepo
  • mkdir /var/tmp/maria
  • mkdir /var/tmp/maria-installroot
再來是準備 /etc/yum.repos.d/mariadb.repo,內容如下:
  • [mariadb]
  • name = MariaDB
  • baseurl = http://yum.mariadb.org/10.3/centos7-amd64
  • gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  • gpgcheck = 1
接著把 yum maria 下載安裝分開,下載是:
  • sudo yum install --downloadonly --installroot=/var/tmp/maria-installroot --releasever=7 --downloaddir=/var/tmp/maria MariaDB-server MariaDB-client
  • sudo curl https://yum.mariadb.org/RPM-GPG-KEY-MariaDB -o /etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB
包裹成離線安裝資源:
  • createrepo --database /var/tmp/maria
  • sudo rm -rf /var/tmp/maria-installroot
再準備「離線版」/etc/yum.repos.d/mariadb-offline.repo:
  • [mariadb-offline]
  • name = MariaDB-offline
  • baseurl = file:///var/tmp/maria
  • enabled = 0
  • checkgpg = 1
  • gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB
可以多檢查一下完整性:
  • repoclosure --repoid=mariadb-offline
如果沒問題的話,把 /var/tmp/maria 目錄壓成一個檔案:
  • tar -cvf mariadb-offline.tar /var/tmp/maria
未來就解壓 mariadb-offline.tar,以及 /etc/yum.repos.d/mariadb-offline.repo /etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB 搬到要安裝 MariaDB 的 CentOS 7 主機上,即使對外無網路,也可以順利安裝 MariaDB:
  • tar -xvf mariadb-offline.tar -C /
  • sudo yum --disablerepo=\* --enablerepo=mariadb-offline install MariaDB-server MariaDB-client
安裝後再人工啟動:
  • systemctl start mariadb
[2018/08/09]
java-1.8.0-openjdk 類似的過程:雖然官方 yum 有收此套件,省了多一組 GPG-KEY 的問題,但可能另外遇到目標主機沒有經過 yum update,以致 nss 比 openjdk 所需版本要舊。解決之道二選一:
  • 出貨端要求各被安裝系統需求為「近日曾做過 yum update」,而且每次出貨前都先 yum update 再包離線安裝檔。(顯然是個爛方法)
  • 離線安裝包增加 nss nss-tools(如果有需要的話,可能也要納入更多版本不符的套件),並且在安裝時額外指定一併安裝 nss 套件。

星期二, 3月 20, 2018

Auto sync CentOS server time

要讓眾 Client 向 Server 對時已是很多系統的基本需求,所以我們得先搞懂 Server 如何讓自己的時間準確?
  • yum install ntp
  • 根據這個網站挑選合適的時間伺服器列表,ping 確認網路通暢後,加在 /etc/ntp.conf
  • systemctl start ntpd
  • systemctl enable ntpd
  • timedatectl set-ntp true
  • 等五分鐘
以前不知要有點耐心,下完指令總以為還缺什麼,就是沒有校正時間?「等五分鐘」值得一記。