- Android 關機、取出記憶卡。在這件事情做完之前,都不會用到手機。
- 「搬檔案」可能造成 Android 讀不到卡,不論新舊,千萬別這麼做。
- 「複製磁碟分區」Clone Partition 可行,用過這篇文章推薦的 Partition Wizard。
- 新、舊卡可用時接上電腦會比較方便,但只有一條線/讀卡機可接電腦?將舊卡備份在電腦,再還原到新卡。只是電腦要準備一塊「超過備份容量」的未使用空間,如果所有空間都已分配到 Partition,就要重新分割;如果舊卡不是塞得很滿,也可以「縮減」磁碟分區再備份。
- 複製的 Partition 跟舊卡一樣大小,浪費了新卡的空間?也是一樣用上面提到的軟體「擴展」磁碟分區。
星期六, 8月 18, 2018
Android SD card upgrade
當舊的記憶卡空間不足,買了更大容量的新卡,升級時需注意:
星期日, 8月 05, 2018
offline install yum package - MariaDB
以安裝 MariaDB 為例,由於 CentOS YUM repository 並沒有最新版,要自己上 Maria 官網看這個說明下載,常做也是有點麻煩。這次希望準備一個「離線版」安裝包,既不用等網路,又可減少安裝程序。首先參考這篇的前置動作,下載與目錄準備:
java-1.8.0-openjdk 類似的過程:雖然官方 yum 有收此套件,省了多一組 GPG-KEY 的問題,但可能另外遇到目標主機沒有經過 yum update,以致 nss 比 openjdk 所需版本要舊。解決之道二選一:
- sudo yum install yum-plugin-downloadonly yum-utils createrepo
- mkdir /var/tmp/maria
- mkdir /var/tmp/maria-installroot
- [mariadb]
- name = MariaDB
- baseurl = http://yum.mariadb.org/10.3/centos7-amd64
- gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
- gpgcheck = 1
- 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
- [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
- tar -cvf mariadb-offline.tar /var/tmp/maria
- tar -xvf mariadb-offline.tar -C /
- sudo yum --disablerepo=\* --enablerepo=mariadb-offline install MariaDB-server MariaDB-client
- systemctl start mariadb
java-1.8.0-openjdk 類似的過程:雖然官方 yum 有收此套件,省了多一組 GPG-KEY 的問題,但可能另外遇到目標主機沒有經過 yum update,以致 nss 比 openjdk 所需版本要舊。解決之道二選一:
- 出貨端要求各被安裝系統需求為「近日曾做過 yum update」,而且每次出貨前都先 yum update 再包離線安裝檔。(顯然是個爛方法)
- 離線安裝包增加 nss nss-tools(如果有需要的話,可能也要納入更多版本不符的套件),並且在安裝時額外指定一併安裝 nss 套件。
星期三, 8月 01, 2018
NextCloud WebDAV Client's API username
依據這篇,NextCloud 似乎很容易透過 API 存取,但試過自已裝的沒問題,公司的不行。原來在這個簡單的呼叫範例:
接著想必可問,為何自已裝的沒這麼複雜?應該是受了什麼外掛的影響,同步進 NextCloud 的帳號多隔了一層,不再直接用帳號名稱,以保持唯一性。
- curl -X PROPFIND -u username:password https://nextcloud.acme.com/remote.php/dav/files/username
接著想必可問,為何自已裝的沒這麼複雜?應該是受了什麼外掛的影響,同步進 NextCloud 的帳號多隔了一層,不再直接用帳號名稱,以保持唯一性。
星期一, 6月 25, 2018
Enable Https by Nginx in docker
對於那些提供 Web Service 的 docker image(如圖左側),要如何賦予 https 的連線能力?當然依各種服務都有不同的做法可行,例如 GitLab 要改 gitlab.rb,Jenkins 是個 war 等等,不過有沒有更簡單一致的做法?那就是隔壁也開一個 Nginx docker container,配置如圖:
假設申請簽署的網站名為 nginx.acme.com,pem 格式的金鑰對紀錄在 nginx.acme.com.key 檔案內,nginx.acme.com.crt 是 pem 格式的憑證檔, Nginx 設定當有以下段落:
[2018/06/27]
這件事似乎有個常見的名詞 SSL Termination,用 HAProxy 也可以,請參考這篇。
[2018/08/17]
由於 Nginx 官方 docker image 只聽著 port 80,在不想改官方產出的前提下,可以:
- server {
- listen 443 ssl;
- server_name nginx.acme.com;
- ssl_certificate /etc/ssl/certs/nginx.acme.com.crt;
- ssl_certificate_key /etc/ssl/certs/nginx.acme.com.key;
- ...
- location / {
- proxy_pass http://172.17.0.2:80;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-Proto https;
- }
- ...
- }
[2018/06/27]
這件事似乎有個常見的名詞 SSL Termination,用 HAProxy 也可以,請參考這篇。
[2018/08/17]
由於 Nginx 官方 docker image 只聽著 port 80,在不想改官方產出的前提下,可以:
- 由外面的 443 對應到裡面的 80,-p 443:80
- Nginx 設定檔 listen 80 ssl;
- 在某些虛擬機環境,因為防火牆的規則比較亂,可能讓這個 image 開不起來,在這篇有人提到解法:
- iptables -t filter -F
- iptables -t filter -X
- systemctl restart docker
星期四, 6月 21, 2018
星期三, 6月 20, 2018
Azure VM note
在 Azure 上的 VM 還不是隨便開開就好:
- 開任何虛擬機之前,可以先備好共用的 Resource Group、Storage 與 Virtual Network。
- Linux 必須開 port 22 讓 SSH 能進去控制。
- Windows 必須開 port 3389 讓遠端桌面能進去控制。
- 不論從地端或雲端,公開或私有位址,都無法用 Ping 確認虛擬機的狀況(天生不懂 ICMP),只能用 Port Ping,例如 telnet 之類的。
- 即使取得公開位址,防火牆設定正確,虛擬機還必須佔有所在子網段 Subnet 的第一個位址,否則外界仍然連不進去(是 Bug 嗎?)。
星期五, 6月 15, 2018
GitLab Jenkins Integrated Authentication
這兩個服務除了各自有許多驗證方式之外,若要輕量化地使用者單一帳號管理,只要在 GitLab 自建帳號,再搭配 Jenkins 上有個 GitLab Authentication Plugin,即可達到通用的目的。首先來開兩部機器:
完成後,有些東西要抄起來:
在 Jenkins 外掛 GitLab Authentication Plugin 後的設定用得上:
以上其實還算單純的整合,在 Mac 硬是搞了好久,重點是那些位址究竟是要讓 Client 能找到 Server,還是 Server 要找到另一部 Server?因為 Mac 上的 Host (Client) 網路上無法看到 Container (Servers),但 Linux 沒這問題,Windows 則依這篇小加一條繞送規則即可。
- docker run -d --name gitlab -p 80:80 gitlab/gitlab-ce
- docker run -d --name jenkins -p 8080:8080 jenkins/jenkins:lts

在 Jenkins 外掛 GitLab Authentication Plugin 後的設定用得上:
以上其實還算單純的整合,在 Mac 硬是搞了好久,重點是那些位址究竟是要讓 Client 能找到 Server,還是 Server 要找到另一部 Server?因為 Mac 上的 Host (Client) 網路上無法看到 Container (Servers),但 Linux 沒這問題,Windows 則依這篇小加一條繞送規則即可。
訂閱:
文章 (Atom)