歡迎光臨 Planet openSUSE

這是一個訊息來源(feed)整合,收集了 openSUSE 貢獻者在他們個人部落格中的文章

要將您的部落格加入此整合中,請參閱此指引


週五
2017年07月21日


face
openSUSE Leap 42.3 Beta 安裝小記
這次是使用 USB 來進行安裝, 上次裝 42.2 是 2016年11月 :)

中文輸入法問題:

因為就算安裝 中文輸入法也沒有出現( 預設沒有輸入來源, 就算選了也是沒用 ), 所以就用之前的方式
移除 ibus
#yast2  sw_single

取消 ibus  套件

取消 USB 為安裝來源
# yast2  repositories


Freemind:
使用one click install 安裝 http://software.opensuse.org/package/freemind
我是使用 editors 那個來源的 ymp 檔案安裝

.mm 的檔案指定用 freemind  開啟


新增 Packman 套件庫:

使用 #yast2  repositories 手動加入 NCHC Packman 套件庫

#yast2  repositories

URL 為


Firefox Sync:
登入 Firefox Sync, 會處理之前有下載的 Plugin

flash-player:
# zypper   install   flash-player


播放器:

# zypper  install   vlc
因為 mplayber 與 smplayer 不知道為何播放 .mp4 有點問題, 但是使用 VLC 就沒有問題
所以我就安裝 VLC Media player

並將 .rmvb 以及 .mp4 預設播放器設定為  VLC


Skype:
目前的版本是 5.4.0 的版本


官方網站說
重要通知事項:所有 Linux 版 Skype 用戶端 4.3 版及較舊版本將於 2017 年 7 月 1 日停止服務。若要繼續使用聊天功能,請安裝最新的 Linux 版 Skype。

下載 RPM 版本用軟體安裝就裝好了 :)

使用 #yast2 sound 調整音效


Dropbox:

目前版本 2.10.0
使用 # zypper install dropbox 來安裝

安裝完之後在終端機下 dropbox  start  -i  來安裝


安裝 GNOME Control center
# zypper  install  yast2-control-center-gnome

然後修改 /etc/sysconfig/yast2
改為
WANTED_GUI="gtk"

修改 LS_OPTIONS 變數
# vi   /etc/profile.d/ls.bash
把 root 的 LS_OPTIONS 的 -A 移除

.7z 支援:
# zypper  install  p7zip


以下為個人記事


rdesktop 安裝與測試:
#zypper  install  freerdp

執行方式
#xfreerdp  -g  1280x1024  -u administrator  HOST_IP


VMware workstation Pro 12:

安裝目前有問題

要使用 VMware workstation 連線 VMware vCenter ( Conect to Server ) 卻發現會造成程式閃退.

先說結論 目前只有 VMware workstation pro 12.5.2 才有辦法連線到 vCenter


安裝 kernel-default-devel  
# zypper   install   kernel-default-devel
# ./VMware-Workstation-Full-12.5.2-4638234.x86_64.bundle

Yubico Key:
如果 linux 沒有抓到 Yubico 的 U2F Key可以使用以下步驟
讓 linux 支援 Yubico , 我是參考 https://www.yubico.com/faq/enable-u2f-linux/  
作法
存到 /etc/udev/rules.d/70-u2f.rules
將 linux 重開機, 接下來就可以使用了 :-)

Google Chrome:

設定 Google Chrome Sync

smartgit 安裝:

下載 17.0.4

解壓縮到 /opt
# tar  zxvf   smartgit-linux-17_0_4.tar.gz  -C   /opt/

建立 link 讓一般使用者也能使用
# ln  -s   /opt/smartgit/bin/smartgit.sh   /usr/local/bin/smartgit

安裝 git
# zypper  install  git

建立 個人的 ssh key
> ssh-keygen  -t  dsa

將 ssh 的公鑰 id_dsa.pub 新增到 Github 的 Settings -- >  SSH and GPG Keys

接下來就是以一般使用者的身份執行 smartgit 指令
> smartgit

按照上面的參考設定

設定 smart git icon 使用 alacarte

在設定好之後發現無法直接開啟資料夾 ( 資料夾上面按右鍵 -- > Open )
Edit -- > Preferences --> 點選  Tools -- > 點選 Re-Add Defaults 得到解決
2016-11-24 15-48-28 的螢幕擷圖.png


ansible 安裝:

目前版本 2.1.1
#zypper  install  ansible

安裝 pysphere:

為了 ansible and VMware Module


# zypper  install  python-pysphere


Docker 安裝:

目前版本 1.12.6-31
#zypper  install  docker

#systemctl  start  docker
#systemctl  enable   docker

Franz 安裝:

GNOME Extension:

參考調校小記
裝了
  • TopIcon
  • NetSpeed


Forticlient SSL VPN 安裝:
Dropbox 內2013/packages 的 source code
預先安裝
# zypper install libgthread-2_0-0-32bit

印表機安裝:
# yast2  printer



~ enjoy it

參考


週五
2017年07月07日


face
btrfs and snapper in openSUSE Leap 42.2 調校嘗試
OS: openSUSE Leap 42.2

使用 btrfs and snapper 會有因為高 I/O 所以 average load 高的現象,
所以目前嘗試調整第1階段

桌機用 SSD HD, 覺得就感覺有差, 有了之前的經驗( 全部的 partition 都用 btrfs ), 因為 btrfs 會作 snapper, 所以相對在計算上的 IO 就會....很恐怖.

目前的作法是,  根目錄 ( / )使用 btrfs, 然後資料的目錄( 例如 /home )用 XFS
  • 理由是 /home 或是資料目錄不會嚴重影響系統運作. 應該是用備份機制來處理

另外由於是 SSD, 所以容量是比較小的, 所以目前在我 / 目錄只切 40GB 狀況下, 之前有出現使用率 94% 的現象,  所有的使用量會再 /.snapshots 目錄下

使用 yast 觀察 snapshot 還有相關檔案
#yast2   snapper

2017-07-07 21-22-58 的螢幕擷圖.png

可以點選某個 snapshot 然後點選 Show Changes  來看系統變更的細節
2017-07-07 21-22-16 的螢幕擷圖.png

觀察 snapper snapshots
# snapper   list
Type   | # | Pre # | Date                     | User | Cleanup | Description           | Userdata     
-------+---+-------+--------------------------+------+---------+-----------------------+--------------
single | 0 |       |                          | root |         | current               |              
single | 1 |       | Mon Jun 19 15:14:01 2017 | root |         | first root filesystem |              
pre    | 2 |       | Thu Jul  6 15:18:12 2017 | root | number  | yast sw_single        |              
post   | 3 | 2     | Thu Jul  6 15:19:01 2017 | root | number  |                       |              
pre    | 4 |       | Thu Jul  6 22:06:33 2017 | root | number  | zypp(zypper)          | important=no
post   | 5 | 4     | Thu Jul  6 22:06:34 2017 | root | number  |                       | important=no
pre    | 6 |       | Thu Jul  6 22:53:21 2017 | root | number  | zypp(zypper)          | important=no
post   | 7 | 6     | Thu Jul  6 22:53:25 2017 | root | number  |                       | important=no
pre    | 8 |       | Fri Jul  7 14:07:45 2017 | root | number  | zypp(packagekitd)     | important=yes
post   | 9 | 8     | Fri Jul  7 14:11:18 2017 | root | number  |                       | important=yes

可以依照上面的 snapper 編號, 下指令刪除 snapper snapshots
# snapper  delete  5-7
  • 也可以單獨刪除某一個 snapshot, 這邊的例子是 5 到 7 所有的 snapshot

觀察資訊
# snapper   list
Type   | # | Pre # | Date                     | User | Cleanup | Description           | Userdata     
-------+---+-------+--------------------------+------+---------+-----------------------+--------------
single | 0 |       |                          | root |         | current               |              
single | 1 |       | Mon Jun 19 15:14:01 2017 | root |         | first root filesystem |              
pre    | 2 |       | Thu Jul  6 15:18:12 2017 | root | number  | yast sw_single        |              
post   | 3 | 2     | Thu Jul  6 15:19:01 2017 | root | number  |                       |              
pre    | 4 |       | Thu Jul  6 22:06:33 2017 | root | number  | zypp(zypper)          | important=no
pre    | 8 |       | Fri Jul  7 14:07:45 2017 | root | number  | zypp(packagekitd)     | important=yes
post   | 9 | 8     | Fri Jul  7 14:11:18 2017 | root | number  |                       | important=yes




目前調整方式
第1階段 - 調整 /etc/snapper/configs/root
BACKGROUND_COMPARISON="no"
EMPTY_PRE_POST_CLEANUP="no"

------------------------------------------------------------
第2階段會移除 snapper-zypp-plugin
第3階段會移除 grub2-snapper-plugin


Reference:


face
OS: openSUSE Leap 42.2
VMware workstation Pro 12

最近重灌工作 Desktop, 要使用 VMware workstation 連線 VMware vCenter ( Conect to Server ) 卻發現會造成程式閃退.

先說結論 目前只有 VMware workstation pro 12.5.2 才有辦法連線到 vCenter

已經嘗試的版本
  • VMware workstation Pro 12.5.3 / 12.5.7

如何移除 VMware workstation pro

#vmware-installer  -u   vmware-workstation

目前已經在論壇回報這個問題, 希望可以早日解決 ( 雖然目前用 12.5.2 也還好 …  )


Reference




週一
2017年06月19日


face
openSUSE Leap 42.2 安裝小記

桌機的 HD 無預警的升天了......
所以就直接進行升級 :p

記下我安裝 openSUSE Leap 42.2 的相關過程給自己參考
想不到上次裝 openSUSE Leap 42.1 是 2015/12


中文輸入法問題:

因為就算安裝 中文輸入法也沒有出現, 所以就用之前的方式
移除 ibus
#yast2  sw_single

取消 ibus  套件

取消 CD 為安裝來源
# yast2  repositories


Google Chrome:


Freemind:
使用one click install 安裝 http://software.opensuse.org/package/freemind
我是使用 editors 那個來源的 ymp 檔案安裝

.mm 的檔案指定用 freemind  開啟


新增 Packman 套件庫:

使用 #yast2  repositories 手動加入 NCHC Packman 套件庫

#yast2  repositories

URL 為


Firefox download helper:


flash-player:
# zypper   install   flash-player


播放器:


因為 mplayber 與 smplayer 不知道為何播放 .mp4 有點問題, 但是使用 VLC 就沒有問題
所以我就安裝 VLC Media player

並將 .rmvb 以及 .mp4 預設播放器設定為  VLC


Skype:
目前的版本是 4.3.0.37 的版本


使用終端機指令下載
#wget  -O  skype-`date +%F`.rpm   http://www.skype.com/go/getskype-linux-beta-suse

下載的 rpm 會被命名為 skype-日期.rpm


因為目前 rpm base 的OS, skype 只有提供 32 bits 的套件
所以要先預先安裝一些套件

參考 http://en.opensuse.org/SDB:Skype  但是還是有些遺漏, 所以要安裝一些套件


# zypper  -n  install  libqt4-32bit   libqt4-x11-32bit   libpng12-0-32bit
# zypper  -n  install  libXss1-32bit  libQtWebKit4-32bit   libQtWebKit4
# zypper  -n  install  libXv1-32bit  xorg-x11-libs


安裝 skype 套件
# rpm -ivh skype*.rpm


使用 #yast2 sound 調整音效


Dropbox:

使用 # zypper install dropbox 來安裝, 因為發現版本比 software.opensuse.org/search 上面新

安裝完之後在終端機下 dropbox  start  -i  來安裝


安裝 GNOME Control center
# zypper  install  yast2-control-center-gnome

然後修改 /etc/sysconfig/yast2
改為
WANTED_GUI="gtk"

修改 LS_OPTIONS 變數
# vi   /etc/profile.d/ls.bash
把 root 的 LS_OPTIONS 的 -A 移除

.7z 支援:
# zypper  install  p7zip


以下為個人記事

PDF Viewer 安裝:
Foxit
因為預設的 PDF Viewer 中文顯示有問題所以使用 Foxit
https://www.foxitsoftware.com/products/pdf-reader/

Forticlient SSL VPN 安裝:
Dropbox 內2013/packages 的 source code
預先安裝
# zypper install libgthread-2_0-0-32bit
# zypper  install  gnome-themes

印表機安裝:
# yast2  printer


rdesktop 安裝與測試:
#zypper  install  freerdp

執行方式
#xfreerdp  -g  1280x1024  -u administrator  HOST_IP


VMware workstation Pro 12
http://www.vmware.com/products/workstation/workstation-evaluation.html

安裝 kernel-default-devel  
# zypper   install   kernel-default-devel
# ./VMware-Workstation-Full-12.5.2-4638234.x86_64.bundle

裝完後, 設定取消 share VM access


Yubico Key:
如果 linux 沒有抓到 Yubico 的 U2F Key可以使用以下步驟
讓 linux 支援 Yubico , 我是參考 https://www.yubico.com/faq/enable-u2f-linux/  
作法
存到 /etc/udev/rules.d/70-u2f.rules
將 linux 重開機, 接下來就可以使用了 :-)

smartgit 安裝:

下載 8.0.3

解壓縮到 /opt
# tar  zxvf   smartgit-linux-8_0_3.tar.gz  -C   /opt/

建立 link 讓一般使用者也能使用
# ln  -s   /opt/smartgit/bin/smartgit.sh   /usr/local/bin/smartgit

安裝 git
# zypper  install  git

建立 個人的 ssh key
> ssh-keygen  -t  dsa

將 ssh 的公鑰 id_dsa.pub 新增到 Github 的 Settings -- >  SSH and GPG Keys

接下來就是以一般使用者的身份執行 smartgit 指令
> smartgit

按照上面的參考設定

設定 smart git icon 使用 alacarte

在設定好之後發現無法直接開啟資料夾 ( 資料夾上面按右鍵 -- > Open )
Edit -- > Preferences --> 點選  Tools -- > 點選 Re-Add Defaults 得到解決
2016-11-24 15-48-28 的螢幕擷圖.png


ansible 安裝:
#zypper  install  ansible

安裝 pysphere:

為了 ansible and VMware Module


# zypper  install  python-pysphere


Docker 安裝:

#zypper  install  docker

#systemctl  start  docker
#systemctl  enable   docker

Franz 安裝:

將網路換回 NetworkManager - cause wifi select

桌面調校:
  • 參考 http://sakananote2.blogspot.tw/2016/12/opensuse-leap422-gnomeextension.html
    • 要裝瀏覽器的擴充功能還有, chrome-gnome-shell 套件


~ enjoy it



週五
2017年06月16日


face
Smartgit 與 PyCharm 升級小記

OS: openSUSE Leap 42.2

最近想要計劃性的學習 python, 所以就把 smartgit 以及 PyCharm 程式進行升級

smartgit
  • 升級沒有太多問題, 直接將 smartgit-linux-17_0_4.tar.gz 解壓縮到 /opt 下就完成

PyCharm
  • 大概分成幾個部份
    • 下載新的 PyCharm 並安裝
    • 修改應用程式的啟動圖示
      • 之前啟動圖示是使用 alacarte 建立, 但是更新PyCharm不會更新啟動圖示
      • 使用 vi 修改 ~/.local/share/applications/jetbrains-pycharm-ce.desktop 對應到新的版本, 檔案參考如下

[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm Community Edition
Icon=/opt/pycharm-community-2017.1.4/bin/pycharm.png
Exec="/opt/pycharm-community-2017.1.4/bin/pycharm.sh" %f
Comment=The Drive to Develop
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm-ce

  • 測試是否可以正確啟動
    • 使用 root 身份將舊版本 PyCharm 移動到特定目錄(EX: /home/sakana/Download )觀察, 如果一段時間都沒有問題, 刪除舊的程式

Reference:


~ enjoy it

週三
2017年06月07日


face
ansible with ceph RBD client and openSUSELeap42.2小記

昨天嘗試 Ceph RBD client 掛載with openSUSE Leap 42.2
今天將昨天的東西寫成 ansible playbook

OS: openSUSE Leap 42.2



一樣透過 群組的方式來控管

作法很簡單
將 ceph_rbd_client 目錄以及底下的檔案下載或是複製到有 ansible 的機器
將 要掛載的機器 ip 還有相關資訊增加到 hosts 檔案內, 並加入到 [ cephRbdClient ]

準備好
  • Ceph server IP
  • Ceph 的 id
  • Ceph 的 key
  • RBD pool 以及 image 名稱

執行
#ansible-playbook   ceph_rbd_client_install.yml


因為透過群組控管所以 hosts 檔案內容如下

# syntax: servername  options
# ansible_host -- Remote Host IP
# ansible_user -- Remote SSH User Name
# ansible_ssh_private_key_file -- SSH Key
# ansible_ssh_pass -- SSH Password for remote host
# ansible_port -- Remote SSH port
# testserver   ansible_host=xxx.xxx.xxx.xxx   ansible_user=root   ansible_ssh_private_key_file=



#### Group List ###########################
[cephRbdClient]
testserver

相關設定檔使用 template 模組來控制, 透過變數來使用
所以在 templates 目錄下準備兩個檔案

templates/ceph.conf 檔案內容如下

[global]
mon host = {{ ceph_mon_host }}


templates/keyring 檔案內容如下

[client.{{ ceph_id }}]
     key = {{ ceph_key }}


接下來看 playbook 的 yaml 檔案主體

ceph_rbd_client_install.yml 檔案內容如下

---
#########################################################  
# 20170607 edit by sakana
- name: use when conditionals and setup module (facts)
 hosts: all
 tasks:
# 使用 setup moudule 列出 OS 種類
   - name: use setup module to list os distribution
# setup moudle 可以使用 filter 過濾相關內容
     setup: filter=ansible_distribution


#########################################################  

- name: Install ceph-common packages and setup
# 使用群組方式安裝 ceph-common套件, 請配合 hosts 內的 [cephRbdClient]
 hosts: cephRbdClient
 become: True
# 透過提示來輸入相關變數
 vars_prompt:
    - name: "ceph_mon_host"
      prompt: "Enter ceph mon host IP"
# private 設定為 no 會顯示輸入的內容
      private: no
# 這邊可以設定預設值

    - name: "ceph_id"
      prompt: "Enter your ceph id"
      private: no
#       default:

    - name: "ceph_key"
      prompt: "Please paste your ceph key"
      private: no

    - name: "pool_image_name"
      prompt: "Please input your pool/image name, like rbd/test"
      private: no
      default: "rbd/test"


 tasks:
   - name: Install ceph-common with openSUSE Leap
# 這邊使用 disable_recommends=no 加入zypper 建議的套件, 否則不會加入建議的其他套件
     zypper: name={{ item }} disable_recommends=no
     with_items:
       - ceph-common
     when: ansible_distribution == "openSUSE Leap"

#-------------------------------------------------------  

# 設定 /etc/ceph/ceph.conf 檔案
   - name: set /etc/ceph/ceph.conf
     template: src=templates/ceph.conf dest=/etc/ceph/ceph.conf

#-------------------------------------------------------  

# 設定 keyring
   - name: set up keyring
     template: src=templates/keyring dest=/etc/ceph/ceph.client.{{ceph_id}}.keyring

#-------------------------------------------------------  

# 進行 rbd map
   - name: map rbd image
     shell: rbd  --id  {{ceph_id}} map {{pool_image_name}}

#-------------------------------------------------------  

# 檢查 rbd map images
   - name: check rbd map images
     shell: rbd --id {{ceph_id}} showmapped

#-------------------------------------------------------  

# 進行 /dev/rbd0 格式化 xfs
   - name: use mkfs.xfs to create xfs with /dev/rbd0
     shell: mkfs.xfs  -f  /dev/rbd0

#-------------------------------------------------------  



# 透過 mount module 掛載 /dev/rbd0 到 /mnt/rbd0 並修改 /etc/fstab
# 使用 file module 的好處是可以同時處理 /etc/fstab
   - name: mount /dev/rbd0 to /mnt/rbd0
     mount: src=/dev/rbd0 name=/mnt/rbd0 state=mounted fstype=xfs

#-------------------------------------------------------  

# 設定 /etc/ceph/rbdmap
   - name: set up /etc/ceph/rbdmap
#    2.3 以前的版本不可以使用 path
#      lineinfile: path=/etc/ceph/rbdmap line='{{pool_image_name}}  id={{ceph_id}},keyring=/etc/ceph/ceph.client.{{ceph_id}}.keyring'
     lineinfile: name=/etc/ceph/rbdmap line='{{pool_image_name}}  id={{ceph_id}},keyring=/etc/ceph/ceph.client.{{ceph_id}}.keyring'

#-------------------------------------------------------  

# 設定 rbdmap 啟動與開機啟動
   - name: Set rbdmap enable and run
     service: name=rbdmap state=started enabled=yes

#-------------------------------------------------------  






face
Ceph RBD 掛載 with_openSUSELeap42.2小記

最近準備開始測試 ceph 檔案系統, Server 的建置是由其他同事負責, 所以我這邊紀錄 client 的相關使用小記

OS: openSUSE Leap 42.2 VM in VMware ESXi


使用 zypper 安裝 ceph-common 套件

# zypper  install  ceph-common
正在載入套件庫資料...
正在讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列 13 個新的套件:
 ceph-common libboost_program_options1_54_0 libboost_random1_54_0 libboost_regex1_54_0 libcephfs1 librados2 libradosstriper1 librbd1 python-cephfs python-ndg-httpsclient python-rados
 python-rbd python-requests

下列 1 個推薦的套件已自動被選取:
 python-ndg-httpsclient

13 要安裝的新套件.
全部下載大小:12.2 MiB。已快取:0 B。 完成操作後,將使用額外的 47.5 MiB。
要繼續嗎? [y/n/? 顯示所有選項] (y):  y

設定 ceph 主機IP

#vi   /etc/ceph/ceph.conf
[global]
mon host = YOUR_CEPH_SERVER_IP

設定 keyring
其中 client.sakana
  • sakana 是帳號

#vi    /etc/ceph/ceph.client.sakana.keyring
[client.sakana]
       key = AQCWsx5ZikhdRcAA/Bsqwec+6Mka/ucQ1A7wiQ==

進行 rbd 的 map
  • windows10 為RBD的名稱
  • sakana 必須對應剛剛

# rbd   --id   sakana  map   windows10
/dev/rbd0

檢查是否有成功 map

# rbd   --id   sakana   showmapped
id pool image     snap device    
0  rbd  windows10 -    /dev/rbd0


使用 mkfs 指令進行格式化, 因為是實驗 block device, 發現上面已經有 filesystem, 會要求使用 -f 方式強制執行

# mkfs.xfs   /dev/rbd0
mkfs.xfs: /dev/rbd0 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.

使用 mkfs.xfs 格式化 xfs

# mkfs.xfs  -f    /dev/rbd0
meta-data=/dev/rbd0              isize=256    agcount=17, agsize=1637376 blks
        =                       sectsz=512   attr=2, projid32bit=1
        =                       crc=0        finobt=0, sparse=0
data     =                       bsize=4096   blocks=26214400, imaxpct=25
        =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=12800, version=2
        =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0


建立掛載點

# mkdir  -p   /mnt/rbd0


進行掛載動作, 將 /dev/rbd0 掛載到 /mnt/rbd0

# mount   /dev/rbd0   /mnt/rbd0/

觀察掛載情形

# df -h
檔案系統        容量  已用  可用 已用% 掛載點
devtmpfs        952M  4.0K  952M    1% /dev
tmpfs          1000M  104K 1000M    1% /dev/shm
tmpfs          1000M  2.2M  998M    1% /run
tmpfs          1000M     0 1000M    0% /sys/fs/cgroup
/dev/sda2        18G  5.6G   13G   32% /
tmpfs           201M   20K  200M    1% /run/user/478
tmpfs           201M  4.0K  200M    1% /run/user/0
/dev/rbd0       100G   33M  100G    1% /mnt/rbd0


設定開機進行掛載, 使用 rbdmap 服務

設定 /etc/rbdmap 檔案, 將 image 還有id對應以及 keyring 設定完成

# vi    /etc/ceph/rbdmap

# RbdDevice             Parameters
#poolname/imagename     id=client,keyring=/etc/ceph/ceph.client.keyring
rbd/windows10           id=sakana,keyring=/etc/ceph/ceph.client.sakana.keyring


編輯 /etc/fstab

# vi    /etc/fstab

/dev/rbd0                                 /mnt/rbd0            xfs        noauto                0 0

設定 rbdmap 服務啟動以及開機啟動

# systemctl   status  rbdmap.service
# systemctl   is-enabled  rbdmap.service

# systemctl   enable  rbdmap.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rbdmap.service to /usr/lib/systemd/system/rbdmap.service.


# systemctl   start  rbdmap.service


測試

使用 dd 指令進行測試

# dd   if=/dev/zero   of=/mnt/rbd0/testfile   bs=1M   count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 3.1967 s, 168 MB/s


使用 iozone 進行測試

安裝 iozone 套件

# zypper   install  iozone
正在載入套件庫資料...
正在讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列 1 個新的套件:
 iozone

1 要安裝的新套件.
全部下載大小:151.2 KiB。已快取:0 B。 完成操作後,將使用額外的 465.3 KiB。
要繼續嗎? [y/n/? 顯示所有選項] (y): y

安裝 gunplot 套件

# zypper  install  gnuplot
正在載入套件庫資料...
正在讀取已安裝的套件...
正在解決套件相依性...

將會安裝下列 6 個新的套件:
 gnuplot libcaca0 libQt5PrintSupport5 libQt5Svg5 libwx_baseu-suse1 libwx_gtk2u_core-suse1

6 要安裝的新套件.
全部下載大小:3.7 MiB。已快取:0 B。 完成操作後,將使用額外的 14.0 MiB。
要繼續嗎? [y/n/? 顯示所有選項] (y): y


使用 iozone 指令進行測試
  • 這邊我使用 -f 指定到 /mnt/rbd0/iozonetest 不知道是否正確
  • 結果會輸出到  /root/iozone.log

# iozone  -a  -f   /mnt/rbd0/iozonetest  >  /root/iozone.log

可以看 /root/iozone.log 來看相關數據

# cat   /root/iozone.log
Iozone: Performance Test of File I/O
       Version $Revision: 3.444 $
Compiled for 64 bit mode.
Build: linux

Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
            Al Slater, Scott Rhine

週二
2017年05月23日


face
grive2 with openSUSELeap42.2小記

今天在 facebook 看到有朋友貼 grive 的相關文章, 很早之前有試過 GNOME 的 online account with google, 不過那個時候還沒有成熟, 看到朋友回說這個是 command line 工具, 就順手玩了一下.

OS: openSUSE Leap 42.2
套件:  grive2

Github 網站

目前在 openSUSE Leap 42.2 上面, grive2 是不穩定的套件, 抱著實驗的心情來嘗試

安裝相關套件
這邊偷懶的方式我使用 OneClickInstallCLI ,  作法為 OneClickInstallCLI 後面接 .ymp位置

# OneClickInstallCLI https://software.opensuse.org/ymp/home:darkhado:openSUSE/openSUSE_Leap_42.2/grive2.ymp
If you continue, the following repositories will be subscribed:
* http://download.opensuse.org/repositories/home:/darkhado:/openSUSE/openSUSE_Leap_42.2/
If you continue, the following software packages will be installed:
* grive2
Continue? y/N 輸入 y

接下來 Import Key 當然選 Trust
2017-05-23 23-30-59 的螢幕擷圖.png


執行完畢之後就安裝完成了 :)
進行相關設定
建立同步資料夾, 這邊我跟文章一樣在家目錄建立 google_drive 目錄
> mkdir   ~/google_drive

進入資料夾
> cd   ~/google_drive/

執行驗證要求, 開啟裡面的連結
> grive -a
-----------------------
Please go to this URL and get an authentication code:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fdocs.google.com%2Ffeeds%2F+https%3A%2F%2Fdocs.googleusercontent.com%2F+https%3A%2F%2Fspreadsheets.google.com%2Ffeeds%2F&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=22314510474.apps.googleusercontent.com

-----------------------
Please input the authentication code here:

會跳出驗證要求畫面, 點選 ALLOW
2017-05-23 23-41-06 的螢幕擷圖.png

會出現authentication code
2017-05-23 23-42-57 的螢幕擷圖.png
將他貼到
-----------------------
Please input the authentication code here:

接下來就會開始同步資料夾

同步完之後觀察資料夾
  • 資料夾下會有 .grive 以及.grive_state
  • 發現沒有同步的很完整, 發現如果是 google document 會被 ignored


> grive -V
config file name "./.grive"
Reading local directories
file .grive is ignored by grive
file .grive_state is ignored by grive
Reading remote server file list
file "testfile" is a google document, ignored
folder "./grive_test" is in sync
file "Portus 淺談" is a google document, ignored
file "2013-Q1 服務學習選修名單" is a google document, ignored
file "2014-Q1 - 交大資工系服務學習項目" is a google document, ignored
file "20161022 Docker and openSUSE workshop" is a google document, ignored

結論, 可能還要再觀察


Reference:


~ enjoy it

週六
2017年04月29日


face
openSUSE eBPF/BCC workshop 小記

Notes:
  • Kernel config 可以參考 /boot/ 下 config-開頭對應自己目前的核心, 看相關參數有沒有開
例如
# grep   BPF   /boot/config-4.4.46-11-default
CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_NETFILTER_XT_MATCH_BPF=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_ACT_BPF=m
CONFIG_BPF_JIT=y
CONFIG_HAVE_BPF_JIT=y
CONFIG_BPF_EVENTS=y
# CONFIG_TEST_BPF is not set

安裝相關套件
# zypper   in   python-bcc
# zypper  in  bcc-examples

相關 examples 存放地方
# pwd
/usr/share/bcc/examples

觀察 hello world
# cat   /usr/share/bcc/examples/hello_world.py  
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")

# run in project examples directory with:
# sudo ./hello_world.py"
# see trace_fields.py for a longer example

from bcc import BPF

BPF(text='void kprobe__sys_clone(void *ctx) { bpf_trace_printk("Hello, World!\\n"); }').trace_print()

安裝 ( 更新 ) 目前的 kernel-default
# zypper  in  kernel-default

重新開機
# reboot
執行相關測試

# cd   /usr/share/bcc/examples/

執行 hello_world.py
# python   /usr/share/bcc/examples/hello_world.py

接下來可以嘗試在另外一個視窗 ssh 機器

就可以觀察到相關輸出

template:/usr/share/bcc/examples # python  /usr/share/bcc/examples/hello_world.py
           sshd-2314  [001] d..2   479.045754: : Hello, World!
           sshd-2864  [000] d..2   479.072225: : Hello, World!
           sshd-2864  [000] d..2   479.172032: : Hello, World!
           sshd-2864  [000] d..2   485.447949: : Hello, World!

另外一個測試

# cat  /usr/share/bcc/examples/tracing/trace_fields.py
#!/usr/bin/env python
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")

# This is an example of tracing an event and printing custom fields.
# run in project examples directory with:
# sudo ./trace_fields.py"

from bcc import BPF

prog = """
int hello(void *ctx) {
 bpf_trace_printk("Hello, World!\\n");
 return 0;
}
"""
b = BPF(text=prog)
b.attach_kprobe(event="sys_clone", fn_name="hello")
print "PID MESSAGE"
b.trace_print(fmt="{1} {5}")

進行測試
# python    /usr/share/bcc/examples/tracing/trace_fields.py
PID MESSAGE
2954 Hello, World!
2473 Hello, World!
3042 Hello, World!


其他的 examples 檔案可以在 https://github.com/iovisor/bcc/tree/master/examples 找到

# cd   /usr/share/bcc/examples/tracing/

# wget   https://raw.githubusercontent.com/iovisor/bcc/master/examples/tracing/sync_timing.py

# cat   sync_timing.py
#!/usr/bin/python
#
# sync_timing.py    Trace time between syncs.
#                   For Linux, uses BCC, eBPF. Embedded C.
#
# Written as a basic example of tracing time between events.
#
# Copyright 2016 Netflix, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")

from __future__ import print_function
from bcc import BPF

# load BPF program
b = BPF(text="""
#include <uapi/linux/ptrace.h>
#include <linux/blkdev.h>

BPF_HASH(last);

void do_trace(struct pt_regs *ctx) {
   u64 ts, *tsp, delta, key = 0;

   // attempt to read stored timestamp
   tsp = last.lookup(&key);
   if (tsp != 0) {
       delta = bpf_ktime_get_ns() - *tsp;
       if (delta < 1000000000) {
           // output if time is less than 1 second
           bpf_trace_printk("%d\\n", delta / 1000000);
       }
       last.delete(&key);
   }

   // update stored timestamp
   ts = bpf_ktime_get_ns();
   last.update(&key, &ts);
}
""")

b.attach_kprobe(event="sys_sync", fn_name="do_trace")
print("Tracing for quick sync's... Ctrl-C to end")

# format output
start = 0
while 1:
   (task, pid, cpu, flags, ts, ms) = b.trace_fields()
   if start == 0:
       start = ts
   ts = ts - start
   print("At time %.2f s: multiple syncs detected, last %s ms ago" % (ts, ms))

執行 sync_timing.py ( 另外在新視窗執行 #sync;sync;sync )
# python   /usr/share/bcc/examples/tracing/sync_timing.py
Tracing for quick sync's... Ctrl-C

週五
2017年04月14日


face
使用 OBS Appliance Installer 安裝 OBS Server 小記


上面的 ISO 是 Leap 42.1 的 ISO

其他部屬方式可以參考 2017-04-14 00-24-26 的螢幕擷圖.png

上面有看到不同的 images 可以選擇

2017-04-14 00-25-39 的螢幕擷圖.png

VMware VMDK 檔案

整合ISO with Leap 42.1


首先嘗試 整合ISO方式

使用 4 vCPU , 4GB RAM 與 20GB硬碟空間進行測試

使用 ISO 開機之後, 會要求選取安裝的磁碟
選取要安裝的磁碟 -- > OK

OBS_42.1_ISO_Test-2017-04-14-07-42-48.png


提出會摧毀所有資料的警告 -- > 選取 Yes
OBS_42.1_ISO_Test-2017-04-14-07-45-02.png


接下來就會進行開機, 完成初步安裝程序
OBS_42.1_ISO_Test-2017-04-14-07-49-50.png

開機畫面會看到
  • 預設密碼為 opensuse
    • root  為系統管理者, 請在系統內使用 passwd 指令更改密碼
    • Admin 為 OBS 管理者, 請在 Web interface 更改密碼
  • 預設網路是使用 DHCP, 且預設沒有裝 yast ….
    • 要使用固定IP, 請
      • 修改 /etc/sysconfig/network/ifcfg-eth0
        • BOOTPROTO=’static
        • IPADDR=’x.x.x.x/24’
          • x.x.x.x 為自己IP
      • 新增 /etc/sysconfig/network/routes
        • 加入 default  x.x.x.x - -
          • x.x.x.x 為自己網段的 Gateway
      • 修改 /etc/resolv.conf
        • 加入 nameserver 8.8.8.8
      • #systemctl  restart  network

接下來連線 Web interface 來完成
連線要用 https:// , 如果使用 http:// 連線會出現

2017-04-14 07-57-59 的螢幕擷圖.png

使用 https:// 連線才會出現

2017-04-14 08-07-46 的螢幕擷圖.png


嘗試使用 root 以及密碼登入 -- >  失敗 ( 這邊是為了確認是否使用系統帳號 )
嘗試使用 Admin 以及密碼登入 -- > 成功

2017-04-14 08-10-10 的螢幕擷圖.png

所以登入之後的第一件事就是 Change your password
輸入現在密碼以及新密碼 -- > OK

2017-04-14 08-12-25 的螢幕擷圖.png



Reference:


face
OBS with openSUSE Leap 42.2 小記

OS: openSUSE Leap 42.2

先說結論, 目前沒有 OBS_Server 的 Pattern 

  • 沒有辦法使用 #zypper  in  -t  pattern OBS_Server
  • 所以要研究如何就單一角色安裝



上面的 ISO 是 Leap 42.1 的 ISO, 考量到 Leap 42.1 的 life time 在2017/5 就到期, 所以嘗試使用 Leap42.2
參考上面的其他部屬方式 2017-04-14 00-24-26 的螢幕擷圖.png

上面有看到不同的 images 可以選擇

2017-04-14 00-25-39 的螢幕擷圖.png

下次要來試試看 VMware Image 方式

繼續往下看
openSUSE Leap 42.1 的安裝方式

#zypper  ar   -f   http://download.opensuse.org/repositories/OBS:/Server:/2.8/openSUSE_42.1/OBS:Server:2.8.repo
#zypper  in  -t  pattern   OBS_Server

從網頁看一下是否有 Leap 42.2 的路徑, 果然就找到了

另外參考他裏面提到的 README
If you already have a Linux server running you can use our binary packages to install OBS and follow our README to set everything up yourself.


另外又有提到如果是進階設定, 例如分散式設定可以參考

看來要好好用功了 :)

開始嘗試安裝

首先新增套件庫


正在新增套件庫 '2.8 version of the Open Build Service Server (openSUSE_42.2)' ............................................................[完成]
已成功新增套件庫 '2.8 version of the Open Build Service Server (openSUSE_42.2)'

位址         : http://download.opensuse.org/repositories/OBS:/Server:/2.8/openSUSE_42.2/
已啟用       : 是                                                                       
GPG 檢查     : 是                                                                       
自動重新整理 : 是                                                                       
優先權       : 99 (default priority)                                                    

Repository priorities are without effect. All enabled repositories share the same priority.


確認是否安裝了套件庫

# zypper  lr
Repository priorities are without effect. All enabled repositories share the same priority.

#  | 別名                      | 名稱                                                         | 已啟用 | GPG 檢查 | 重新整理
---+---------------------------+--------------------------------------------------------------+--------+----------+---------
1 | OBS_Server_2.8            | 2.8 version of the Open Build Service Server (openSUSE_42.2) | 是     | ( p) 是  | 是    

安裝相關套件

# zypper  in  -t  pattern   OBS_Server
正在取出套件庫 '2.8 version of the Open Build Service Server (openSUSE_42.2)' 中繼資料 ------------------------------------------------------[|]

收到新的套件庫或套件簽署金鑰:

 套件庫:        2.8 version of the Open Build Service Server (openSUSE_42.2)
 金鑰名稱:      OBS OBS Project <OBS@build.opensuse.org>                    
 金鑰指紋:      660FD3F9 F16602A3 722ABF6D E8420AB8 C5C219E7                
 金鑰建立日期:  西元2015年04月21日 (週二) 21時59分15秒                      
 金鑰過期日期:  西元2017年06月29日 (週四) 21時59分15秒 (在 76 天內過期)     
 RPM 名稱:      gpg-pubkey-c5c219e7-553657b3                                


您想要拒絕此金鑰,暫時信任,或永遠信任? [r/t/a/? 顯示所有選項] (r): a

安裝失敗, 因為Leap 42.2 沒有  OBS_Server 的 pattern


可能真的要嘗試其他方式

VMware VMDK 檔案

整合ISO with Leap 42.1


Reference:


週日
2017年02月12日


face

自從 Novell 被 Micro Focus 併購後,我也好一陣子沒再針對 Novell 的產品與認證進行深究,前幾天收到 Micro Focus 寄來的新版講師證照,相關權益基本上與之前的 Novell CNI 相同,不過台灣現在很少 SUSE Linux課程了,所以發文紀念一下 ^^

 


週一
2017年01月30日


face
Jupyterhub with openSUSE Leap 42.2 小記

之前的 jupyterhub 由於工作的關係,使用OS是配合 iCAIR 使用 CentOS 以及 ubuntu 版本
今天來建立openSUSE Leap 42.2 的 jupyterhub

OS: openSUSE Leap 42.2

測試安裝 jupyterhub 與 ansible 並容器化

安裝相關套件
# zypper  -n  install   python3  npm4  wget  unzip

# npm  install  -g   configurable-http-proxy

# zypper  -n  install  python3-pip

# pip3   install   jupyterhub   jupyter

# zypper   -n   install   python3-paramiko   python3-matplotlib   python3-numpy

# zypper  -n   install  ansible

使用 jupyterhub 指令執行
#jupyterhub

這樣就會在本機的 :8000 執行

為了以後方便執行, 接下來將 jupyterhub 容器化

# Jupyterhub / Ansible on openSUSE Leap 42.2
FROM opensuse:42.2
# Author
MAINTAINER Max Huang <sakana@cycu.org.tw>

# Install Python and pre-requisite packages
RUN \
 zypper -n  install \
  python3 \
  python3-pip \
  python3-paramiko \
  python3-matplotlib \
  python3-numpy \
  wget \
  npm4 \
  unzip

# run npm configurable-http-proxy
RUN npm install -g configurable-http-proxy

# Install Jupyterhub
RUN pip3  install --upgrade pip
RUN pip3  install  jupyter jupyterhub

# Install Ansible
RUN zypper -n install ansible

#expose ports
EXPOSE 8000

# create user
RUN useradd -m ansible && echo "ansible:2016StudyArea"|chpasswd

# Get playbook
RUN wget https://github.com/sakanamax/LearnJupyter/archive/master.zip -O /home/ansible/master.zip
RUN su - ansible -c "unzip master.zip"


# Define default command.
CMD ["jupyterhub"]

建立 docker image 並上傳到 dockerhub

下載方式

# docker  pull  sakana/jupyterhub

使用方式
# docker  run  -d  -p 8000:8000  sakana/jupyterhub

就會在本機的 port 8000 啟動 jupyterhub
帳號: ansible
密碼: 2016StudyArea

先記下來

~ enjoy it




週一
2017年01月16日


face
使用 ansible 快速佈署 nagios with openSUSE Leap 42.2

OS: openSUSE Leap 42.2

Notes:已經安裝 ansible 套件

上一篇文章是手動安裝 nagios 以及 client

接下來就是用 ansible 來進行快速佈署

相關檔案已經放在 GitHub 上面


下載相關檔案, 主要是 nagios_server_install.yml 以及 nagios_client_install.yml, 其他在 playbook 內都會透過 wget 來取得.

編輯或是下載 hosts 檔案, 建立相關群組

主要在 hosts 檔案內透過 群組來控制

# 安裝 nagios server
[NagiosServer]


# 安裝 nagios client
[NagiosClient]


把要安裝 nagios server 與 nagios client 的機器放到群組

要安裝 nagios server
就執行 ansible-playbook   nagios_server_install.yml

會被詢問 nagiosadmin 密碼以及要通知的 e-mail

nagios_server_install.yml 內容如下





---

#########################################################

#

- name: use when conditionals and setup module (facts)

hosts: all

tasks:

# 使用 setup moudule 列出 OS 種類

  - name: use setup module to list os distribution

# setup moudle 可以使用 filter 過濾相關內容

    setup: filter=ansible_distribution





#########################################################



- name: Install nagios server and run service

# 使用群組方式安裝 use group, 請配合 hosts 內的 [NagiosServer]

hosts: NagiosServer

become: True

# 透過提示來輸入相關變數

vars_prompt:

   - name: "nagiosadmin_password"

     prompt: "Enter nagiosadmin password"

# private 設定為 no 會顯示輸入的內容

     private: yes

# 這邊可以設定預設值

     default: nagiosadmin



   - name: "nagiosadmin_email"

     prompt: "Enter nagiosadmin e-mail"

     private: no

     default: nagios@localhost



tasks:

  - name: Install nagios and nrpe with openSUSE Leap

# 這邊使用 disable_recommends=no 加入zypper 建議的套件, 否則不會加入 apache2等其他套件

    zypper: name={{ item }} disable_recommends=no

    with_items:

      - nagios

      - monitoring-plugins

      - nrpe

      - monitoring-plugins-nrpe

    when: ansible_distribution == "openSUSE Leap"



#-------------------------------------------------------



# 設定 nagiosadmin 登入密碼

  - name: set nagiosadmin password

    shell: htpasswd2 -bc /etc/nagios/htpasswd.users nagiosadmin {{ nagiosadmin_password }}



#-------------------------------------------------------



# 由於 apache2.2 and apache2.4 相容性問題, 啟用 access_compat 模組

  - name: enable apache mod_access_compat

    shell: a2enmod mod_access_compat



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

  - name: fix localhost.cfg

    shell: wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/localhost.cfg -O /etc/nagios/objects/localhost.cfg

#      get_url:

#        url: https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/localhost.cfg

#        dest: /etc/nagios/objects/localhost.cfg

#        backup: yes



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

  - name: use modified template.cfg

    shell: wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/templates.cfg -O /etc/nagios/objects/templates.cfg



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

  - name: use modified commands.cfg

    shell: wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/commands.cfg  -O /etc/nagios/objects/commands.cfg



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

# 用來當成監控 linux 公共服務的範本

  - name: use modified linuxPublic.cfg

    shell: wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/linuxPublic.cfg   -O /etc/nagios/objects/linuxPublic.cfg



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

# 用來當成監控 linux 服務的範本( 自己控管的主機 )

  - name: use modified linux.cfg

    shell: wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/linux.cfg    -O /etc/nagios/objects/linux.cfg



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

# 用來當成監控 windows 公共服務的範本( 非自己控管的主機 )

  - name: use modified windowsPublic.cfg

    shell: wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/windowsPublic.cfg    -O /etc/nagios/objects/windowsPublic.cfg



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

# 用來當成監控 windows 服務的範本( 自己控管的主機 )

  - name: use modified windows.cfg

    shell: wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/windows.cfg     -O /etc/nagios/objects/windows.cfg



#-------------------------------------------------------



# 使用修改過的 *.cfg 請詳見 github https://github.com/sakanamax/LearnAnsible/tree/master/playbook/general/nagios/files

# 用來當成監控 switch 的範本, 只監控 IP 不監控 snmp

  - name

週五
2017年01月13日


face
Install VMware VCSA 6.5 in openSUSE Leap 42.2

距離上次安裝 VCSA 竟然是 2015/4 的事情了 :)
http://sakananote2.blogspot.tw/2015/04/20150413-vcenter6.html

上次的 VCSA 裝的有點不開心, 因為必須要在 Windows 底下裝, 然後瀏覽器還要挑
這次 VCSA 6.5  就不一樣了
* 在 Linux and Mac 都可以裝
* 以後 vCenter 6.5 直接用 web client ( flash and HTML5 ) 來管理, 且 vSphere Client 不會出 6.5, 也不能連 vCenter 6.5 -- 跨平台管理的日子終於來了

OS: openSUSE Leap 42.2

下載 VCSA 6.5

對 VCSA 6.0 建立快照

接下來針對下載好的 ISO 進行掛載
最簡單的方式是在 ISO 上面按滑鼠右鍵 -- > 以其他應用程式開啟
-- > 點選 磁碟映像檔掛載器

2017-01-11 09-01-47 的螢幕擷圖.png


掛載起來就會有 CD-ROM 這個目錄
其中有 vcsa-ui-install 目錄
開啟 vcsa-ui-install 目錄

2017-01-11 09-03-26 的螢幕擷圖.png


目錄下有三個目錄 lin64, mac, win32
這邊當然是打開 lin64

2017-01-11 09-08-14 的螢幕擷圖.png

在目錄內開啟 installer

2017-01-11 09-09-14 的螢幕擷圖.png



這個時候會看到 Installer 視窗

2017-01-11 09-10-29 的螢幕擷圖.png

點選右上角 English 可以切換語系
嘗試看看切換成 繁體中文

2017-01-11 09-12-14 的螢幕擷圖.png


果然語系就切換過來了

2017-01-11 09-13-12 的螢幕擷圖.png


點選 安裝

2017-01-11 14-30-06 的螢幕擷圖.png
1 簡介
直接點選 下一步

2017-01-11 14-30-57 的螢幕擷圖.png


2 使用者授權合約
勾選 我接受授權合約的條款 -- > 下一步
2017-01-11 14-31-45 的螢幕擷圖.png


3 選取部署類型
這邊我是選內嵌式 Platform Services Controller -- > 下一步

2017-01-11 14-33-07 的螢幕擷圖.png







4 應用裝置部署目標
輸入 ESXi 主機相關資訊 -- > 下一步

2017-01-11 15-40-08 的螢幕擷圖.png

5 設定應用裝置虛擬機器
輸入 VM名稱以及相關資訊 -- > 下一步

2017-01-11 15-42-25 的螢幕擷圖.png

6 選取部署大小

選取部署大小 -- > 下一步
2017-01-11 15-44-43 的螢幕擷圖.png

7 選取資料存放區
選取資料存放區 -- > 下一步 

2017-01-11 15-46-06 的螢幕擷圖.png


8 設定網路設定
這邊的系統名稱可以填入 IP or FQDN, 我這邊用 IP 的方式, 因為記得以前如果填入 FQDN 要有解析
輸入相關資訊 -- > 下一步

2017-01-11 15-49-13 的螢幕擷圖.png


9 即將完成設定

確認相關資訊 -- > 點選完成
2017-01-11 15-53-11 的螢幕擷圖.png

等待完成階段 1 點選 繼續

2017-01-11 16-17-41 的螢幕擷圖.png


階段2

1  簡介
點選 下一步
2017-01-11 16-19-14 的螢幕擷圖.png



2 應用裝置組態
輸入 NTP Server 資訊 -- > 下一步

2017-01-11 16-21-47 的螢幕擷圖.png
3 SSO 組態
輸入相關資訊 -- > 下一步
2017-01-11 16-22-56 的螢幕擷圖.png

4 設定 CEIP
我自己是沒有特別勾選 -- > 下一步

2017-01-11 16-24-30 的螢幕擷圖.png


5 即將完成
確認相關資訊 -- > 完成

2017-01-11 16-25-13 的螢幕擷圖.png

到此, 就大功告成了

https://你的IP   就可以看到 flash 版本 以及 HTML 版本的管理介面
:)

~ enjoy it

週三
2017年01月04日


face

如果你的 Oracle VM Manager 控制中心檢視 Jobs List 時都出現空的畫面,或者是升級 Oracle VM Manager 時出現 “GEN_000000:An exception occurred during processing: No such object (level 1)” 錯誤訊息,那麼這可能告訴你目前的 MySQL Database 已經出錯了。Oracle VM Manager 有提供一個修復工具,讓你簡易的排除 ( 雖然是簡易,但實際上操作前最好記得備份 ),操作步驟如下所示 :

  1. 關閉你的 OVMM 服務 :  service ovmm stop
  2. 切換路徑到 /u01/app/oracle/ovm-manager-3/bin
  3. 執行下列修復語法 :  ./ovm_upgrade.sh –fixup –dbuser=ovs –dbpass=XXXXX –dbhost=localhost –dbsid=ovs –dbport=49500 –fromversion=3.4.1 –toversion=3.4.1
  4. 重新啟動 OVMM 服務 : service ovmm start
  5. 再次登入你的 Oracle VM Manager 控制中心檢查 Jobs List 是否正常,也可以再次執行升級作業看是否會有其他錯誤

週六
2016年12月31日


face
nagios with openSUSE Leap 42.2 小記

目的: 監控 目前專案還有自己的設備
監控公共服務或是主機是否活著


OS: openSUSE Leap 42.2

安裝 nagios 相關套件, plugins 套件的名稱也改了, 現在叫 monitoring-plugins

# zypper  install   nagios  monitoring-plugins

設定 nagiosadmin 密碼

傳統的方式
# htpasswd2   -c   /etc/nagios/htpasswd.users   nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin

因為考慮之後自動化要結合 ansible 所以也嘗試了 -b 與 -i 選項, 這邊比較有趣的是 -b 或是 -i 都要相選項與 -c 放在一起, 也就是 -b -c 是不行的, 要 -bc 才行

-b  batch mode 密碼要放在使用者帳號後面
# htpasswd2  -bc   /etc/nagios/htpasswd.users    nagiosadmin    test
Adding password for user nagiosadmin

-i  read stdin, 透過 STDIN 來餵進去密碼
# echo  test  |  htpasswd2  -ic   /etc/nagios/htpasswd.users    nagiosadmin
Adding password for user nagiosadmin

確認 nagios 開機啟動

# systemctl   is-enabled   nagios
nagios.service is not a native service, redirecting to systemd-sysv-install
Executing /usr/lib/systemd/systemd-sysv-install is-enabled nagios
disabled

設定開機啟動 nagios
# systemctl   enable  nagios
nagios.service is not a native service, redirecting to systemd-sysv-install
Executing /usr/lib/systemd/systemd-sysv-install enable nagios


# systemctl   is-enabled   nagios
nagios.service is not a native service, redirecting to systemd-sysv-install
Executing /usr/lib/systemd/systemd-sysv-install is-enabled nagios
enabled

嘗試啟動 apache2, 這個時候會出現錯誤
# systemctl  restart  apache2.service
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.


使用 status 觀察, 原因是 apache2.4 與 apache2.2 寫法不一樣
# systemctl  status  apache2.service
12月 31 11:11:50 template start_apache2[7143]: AH00526: Syntax error on line 15 of /etc/apache2/conf.d/nagios.conf:
12月 31 11:11:50 template start_apache2[7143]: Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
12月 31 11:11:51 template systemd[1]: apache2.service: Main process exited, code=exited, status=1/FAILURE

可以參考

解法啟用 access_compat 模組 ( openSUSE / SUSE 預設 authz_host 已經啟動 )
# a2enmod   mod_access_compat

列出已經啟用的 apache2 module
# apache2ctl   -M
  • 會將設定寫入 /etc/apache2/sysconfig.d/loadmodule.conf 檔案內 LoadModule access_compat_module /usr/lib64/apache2-prefork/mod_access_compat.so

重新啟動 apache2
# systemctl  restart  apache2.service

觀察資訊
# systemctl   status  apache2.service


啟動  nagios
# systemctl  start  nagios

觀察資訊
# systemctl  status nagios

開啟 http 服務
#yast2   firewall

預設如果啟動 nagios, 他會去檢查本機 http 服務, 但是沒有預設網頁就會警告, 還有如果監控的項目比較多, total process 也會超標, 所以我調整了一下 /etc/nagios/objects/localhost.cfg  相關內容

#vi   /etc/nagios/objects/localhost.cfg
註解 HTTP, linux-servers 群組 以及調整 Total Process
# 2014/1/8 edit by sakana, temp disable HTTP monitor
#define service{
#        use         local-service         ; Name of service template to use
#        host_name                       localhost
#        service_description             HTTP
#       check_command                   check_http
#       notifications_enabled           0
#        }

# Define an optional hostgroup for Linux machines
#
#define hostgroup{
#        hostgroup_name  linux-servers ; The name of the hostgroup
#        alias           Linux Servers ; Long name of the group
#        members         localhost     ; Comma separated list of hosts that belong to this group
#        }


# 2014/1/8 edit by sakana change check_local_procs from 250 to 400, 400 to 800
define service{
       use                             local-service         ; Name of service template to use
       host_name                       localhost
       service_description             Total Processes
       check_command                   check_local_procs!400!800!RSZDT
       }

上面其實只是說明, 如果需求跟我一樣懶得動手改, 可以抓網路上我已經改好的
( 其實也是為了自己自動化 )

# wget  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/localhost.cfg
--2016-12-31 12:21:29--  https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/playbook/general/nagios/files/localhost.cfg
正在查找主機 raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.100.133
正在連接 raw.githubusercontent.com (raw.githubusercontent.com)|151.101.100.133|:443... 連上了。
已送出 HTTP 要求,正在等候回應... 200 OK
長度: 5546 (5.4K) [text/plain]
Saving to: ‘localhost.cfg’

100%[=====================================================================================================================>] 5,546       --.-K/s   in 0s      

2016-12-31 12:21:30 (28.9

週一
2016年12月26日


face
利用 SUSE Studio 建立客製化 openSUSE / SLES 於 Azure 小記

上一篇文章寫 如何在 Azure 建立 openSUSE / SLES http://sakananote2.blogspot.tw/2016/12/opensuse-linux-in-azure.html

但是上面使用的是 Azure 預先建立好的系統, 雖然可以建立完之後再進去修改( 新增所需的環境或是套件 ). 但是難道不能用自己客製化的 linux 或是環境嗎?

答案是可以的 :)

如果是使用 openSUSE / SLES linux, 官方也是建議使用 SUSE Studio https://susestudio.com/ 這個是比較下來相對輕鬆的方式

所以先來介紹 SUSE Studio
  • 使用瀏覽器線上輕鬆客製化你的 openSUSE / SLES

2016-12-26 16-13-00 的螢幕擷圖.png

  • 可以用 常見的服務來登入, 或是以 openID 來登入

2016-12-26 16-04-28 的螢幕擷圖.png


  • 支援不同的輸入格式 以及雲端服務

2016-12-26 16-11-07 的螢幕擷圖.png


接下來進入正題

建立客製化 openSUSE / SLES的方式很簡單

登入到 SUSE Studio
點選 Create new appliance
2016-12-26 16-14-25 的螢幕擷圖.png

選取要建立的種類
我這次是選 SLES 12 SP1
2016-12-26 16-16-22 的螢幕擷圖.png

輸入名稱
點選 Create appliance
2016-12-26 16-17-45 的螢幕擷圖.png

從畫面的左上方
可以看到建立的流程以及目前的 image 大小

2016-12-26 16-19-18 的螢幕擷圖.png

Software 部份 2016-12-26 16-21-20 的螢幕擷圖.png
  • 可以自行加入套件庫或是 RPM
  • 可以藉由搜尋加入想要的套件, 點選 +add 就可以加入

2016-12-26 16-21-29 的螢幕擷圖.png
2016-12-26 16-21-43 的螢幕擷圖.png


Configuration 部份 2016-12-26 16-23-32 的螢幕擷圖.png
  • 主要設定語系, 開機的 runlevel 還有相關設定
  • Firewall 設定, 網路設定
  • 記憶體, 硬碟大小
  • 密碼相關設定

2016-12-26 16-23-45 的螢幕擷圖.png

  • 這邊要注意的就是, 由於要上傳到 Azure, 所以硬碟大小要大於 30GB
    • 在 Appliance 項目內設定, 這邊我設定 50GB
    • 其實要裝其他的套件, 但是等等在 Build 那邊可以補
2016-12-26 16-25-30 的螢幕擷圖.png
2016-12-26 16-26-58 的螢幕擷圖.png
Files 部份 2016-12-26 16-28-42 的螢幕擷圖.png
  • 則是有沒有自訂的檔案要包含進去 image

2016-12-26 16-29-30 的螢幕擷圖.png
Build 部份 2016-12-26 16-30-18 的螢幕擷圖.png
  • 這邊用下拉式選單選取 Microsoft Azure ( .vhd )

2016-12-26 16-31-21 的螢幕擷圖.png
系統就會通知沒有裝 Public Cloud module

2016-12-26 16-31-30 的螢幕擷圖.png
作法很簡單, 點選 Add Public Cloud module repositories 就補上去了 :)

接下來可愛的綠色 Build 按鈕就可以按了  2016-12-26 16-34-25 的螢幕擷圖.png

點選 Build 就會開始建立
2016-12-26 16-36-36 的螢幕擷圖.png


在建立的過程, 我們來設定 Azure 那邊

因為 SUSE Studio 必須要把 image 上傳到 Azure ( 謎之音: 難道你想自己下載然後自己上傳過去 ?? )
  • 所以 Azure 那邊就要有 storage 來儲存 image

首先我們進入傳統 Azure 網站 https://manage.windowsazure.com/ 並登入
  • 目前我還在摸索在新網站建立 傳統 storage 方式 :)

點選左下角 新增按鈕

2016-12-26 16-46-33 的螢幕擷圖.png

點選 資料服務 -- > 儲存體 -- > 快速建立 -- > 輸入名稱
點選 建立儲存體帳戶

2016-12-26 16-48-00 的螢幕擷圖.png



好了之後我們回到 SUSE Studio
針對剛剛 Build 好的 .vhd 後面 點選 Upload

2016-12-26 17-59-00 的螢幕擷圖.png
這個時候 SUSE Studio 會貼心的提醒
上傳之前要有 credentials, 所以點選 Manage your credentials
( 這個時候請確認已經登入傳統 Azure 入口網站 )
2016-12-26 18-00-21 的螢幕擷圖.png
如果可以正常開啟並進入 Azure 入口網站之後
接下來 點選 settings file

2016-12-26 18-03-13 的螢幕擷圖.png
這個時候會進行下載訂用帳戶檔案 ( 謎之音: 這個不就是剛剛微軟文件的 …..  )
檔案名稱為 *-credentials.publishsettings

2016-12-26 18-04-00 的螢幕擷圖.png

點選 Upload your settings file  -- > 選取剛剛下載的檔案 *.publishsettings
選取剛剛建立的 Storage service
-- > 點選 Save changes

2016-12-26 18-08-41 的螢幕擷圖.png

點選 確定 Azure is not for free :)

2016-12-26 18-09-47 的螢幕擷圖.png


點選 SUSE Studio’s Azure dashboard
2016-12-26 18-11-05 的螢幕擷圖.png
針對剛剛建立的 image
選取 support level -- > 點選 Upload
2016-12-26 18-12-06 的螢幕擷圖.png

接下來就可以看到 image 上傳到 Azure

2016-12-26 18-13-11 的螢幕擷圖.png

上傳完之後會顯示傳過去的名稱

2016-12-26 18-26-20 的螢幕擷圖.png

那要如何使用剛剛建立的 SLES 12 呢?
回到 Azure 入口網站
點選 虛擬機器 -- > 建立虛擬機器

2016-12-26 18-29-31 的螢幕擷圖.png


點選 資料服務 -- > 點選 虛擬機器 -- > 點選 從資源庫

2016-12-26 18-31-21 的螢幕擷圖.png


點選左下角 我的映像  2016-12-26 18-32-32 的螢幕擷圖.png
-- > 選取剛剛上傳的 image -- > 點選 下一步 2016-12-26 18-33-27 的螢幕擷圖.png

輸入名稱以及相關資訊 -- > 點選 下一步 2016-12-26 18-33-27 的螢幕擷圖.png

2016-12-26 18-34-34 的螢幕擷圖.png

設定DNS / Port 相關設定 -- > 點選 下一步 2016-12-26 18-33-27 的螢幕擷圖.png


2016-12-26 18-35-28 的螢幕擷圖.png

確認代理程式
-- > 點選 完成 2016-12-26 18-36-54 的螢幕擷圖.png

2016-12-26 18-36-41 的螢幕擷圖.png

接下來等部署完成之後

2016-12-26 19-06-16 的螢幕擷圖.png

按照 DNS 名稱去進行 ssh 連線即可 :)
# ssh  -l  azureuser  xxxxxx.cloudapp.net

Notes:
  • 這樣可以客製化 openSUSE / SLES 到 Azure
    • SLES 的部份要再研究一下 SMT 訂閱如何加上 :)


今天就先到這邊

~ enjoy it

週日
2016年12月25日


face
openSUSE Leap42.2 桌面調校小記 - GNOME_extension

OS: openSUSE Leap 42.2

這週把目前使用的機器都升級( 重安裝? ) 到 openSUSE Leap 42.2 了
早上想到就把 GNOME extension 稍微看了一下, 裝了自己想要的功能, 在這邊紀錄一下.

GNOME Extension 的相關設定在
所有設定值 -- >  調校工具

2016-12-25 14-13-07 的螢幕擷圖.png


點選 擴充功能
這邊可以看到 擴充功能 相關功能
點選 取得更多擴充功能 就會被帶到 https://extensions.gnome.org/


2016-12-25 14-14-37 的螢幕擷圖.png


這邊發現一個有趣的現象
如果是使用 GNOME Chrome 瀏覽器, GNOME Extension 沒有辦法正常偵測 GNOME 版本, 所以安裝會有問題, 但是 firefox 沒有這個問題. ( 原因是 firefox 會詢問是否允許權限, 但是Chrome 不會詢問 )


2016-12-25 14-17-33 的螢幕擷圖.png


預設是按照受歡迎程度來排序, 但是我是看 Sort by Downloads 來看看有沒有可愛的功能來進行安裝


2016-12-25 14-20-32 的螢幕擷圖.png


以下是自己喜歡的功能來進行紀錄
安裝方式就是在網頁上把 OFF按鈕切換成 ON, 就會被詢問是否要下載安裝 :)

TopIcons

預設 GNOME 是把 icons 收在畫面左下角
點選後展開, 如下圖所示

2016-12-25 14-23-49 的螢幕擷圖.png  2016-12-25 14-23-39 的螢幕擷圖.png

開啟這個功能之後, icon 就會出現在右上方

2016-12-25 14-25-42 的螢幕擷圖.png


NetSpeed

這個真的是我很愛的功能, 即時顯示目前上傳與下載的網路速度 :)

2016-12-25 14-29-10 的螢幕擷圖.png


Show IP

這個功能也是很 lovely
可以顯示指定網卡的 IP, 以及對外的公共 IP, 有時候真的很方便

2016-12-25 14-31-32 的螢幕擷圖.png

2016-12-25 14-32-00 的螢幕擷圖.png


調整完工作列就變成

2016-12-25 14-33-59 的螢幕擷圖.png


感覺很開心, 先記下來

~ enjoy it

週六
2016年12月24日


face
建立 openSUSE linux in Azure 小記

目前雲端的服務慢慢普及, 所以接下來會寫一些 openSUSE / SUSE 與雲端服務的文章, 目前會針對 openSUSE 在 Azure 內的相關測試來撰寫文章.

首先以自己的帳號登入 https://portal.azure.com ( 如果沒有申請過 30 天免費帳號, 可以去申請 https://azure.microsoft.com/zh-tw/free/  )

因為是第一次使用 Azure, 所以介面應該就是日後再慢慢熟悉, 但是摸了一下子, 感覺第1個要調整的介面就是, 新增 訂閱帳戶 到左邊的列表 :)

Microsoft Azure 的儀表板, 真的很像迷宮 ( 謎之音: 明明是你自己不熟 ... )
所以先點選左下角的 更多服務 -- > 點選 訂閱帳戶的 星星符號

2016-12-24 23-45-19 的螢幕擷圖.png


為何這個很重要呢?
因為他可以看到自己的帳單, 還有相關點數 :)
點選 訂用帳戶 -- > 點選 概觀 -- > 畫面拉到最下面就可以看到相關點數與目前的剩餘點數
2016-12-24 23-59-06 的螢幕擷圖.png

接下來進入正題 建立 openSUSE Linux Virtual Machine in Azure

點選左方的虛擬機器 -- > 點選 新增

2016-12-25 00-04-27 的螢幕擷圖.png

在篩選的欄位輸入 opensuse
這個時候會出現 openSUSE Leap 42.1 與 openSUSE 13.2
點選 openSUSE Leap 42.1

2016-12-25 00-07-11 的螢幕擷圖.png

在 右下角的部屬模型, 目前先選預設值 Resource Manager ( 說明在這邊 https://docs.microsoft.com/zh-tw/azure/azure-classic-rm  )
-- > 點選 建立
2016-12-25 00-09-10 的螢幕擷圖.png

接下來輸入虛擬機器相關設定
-- > 點選 確定

2016-12-25 00-14-15 的螢幕擷圖.png


接下來是選取大小
這邊我選取 A1 標準  -- > 點選 選取


2016-12-25 00-18-57 的螢幕擷圖.png

再來是設定選擇性功能, 目前先按照預設值
  • 預設會建立新的網路 / storage
  • Firewall 預設開啟 SSH port 22
  • 公用 IP 位置是使用動態
點選 確定


2016-12-25 00-22-03 的螢幕擷圖.png

最後確認相關摘要 -- > 點選 確定

2016-12-25 00-25-00 的螢幕擷圖.png

接下來就會看到正在提出部屬

2016-12-25 00-26-47 的螢幕擷圖.png

部屬需要一點時間, 就同步嘗試 SLES 12 SP1 in Azure :)

2016-12-25 00-30-43 的螢幕擷圖.png

如果部署完成會再儀表板上面顯示正在執行
可以看下圖看出差異

2016-12-25 00-33-11 的螢幕擷圖.png


那如何連接剛剛建立的 openSUSE 呢?
點選剛剛建立的 openSUSE Linux -- > 點選 概觀

2016-12-25 00-41-12 的螢幕擷圖.png

這邊就會告知 ssh 的連線資訊

2016-12-25 00-41-41 的螢幕擷圖.png


嘗試使用 ssh 連線到遠端主機

#ssh  -X  geeko@REMOTE_IP

Password:
X11 forwarding request failed on channel 0
openSUSE Leap 42.1 x86-64

As "root" use the:
 - zypper command for package management
 - yast command for configuration management

Have a lot of fun...

Notes
  • 目前看起來可以用 command line , 但是 SSH X11 forwarding 是不行的, 後面再來研究
  • 建立的使用者有被設定 sudo, 所以可以藉由 sudo 來執行相關管理指令, 所以可以使用 yast 來管理, yast2 等研究 ssh X11 forwarding 再來測試

觀察一下 A1 標準機器的資訊
磁碟的部份( 剛剛標準 A1 沒有特別列HD 大小 )

# df  -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  807M  8.0K  807M   1% /dev
tmpfs          tmpfs     837M     0  837M   0% /dev/shm
tmpfs          tmpfs     837M  9.5M  827M   2% /run
/dev/sda1      ext4       30G  1.4G   27G   5% /
tmpfs          tmpfs     837M     0  837M   0% /sys/fs/cgroup
/dev/sdb1      ext3       69G   52M   66G   1% /mnt/resource


也算是跨出第一步 :)
今天就先這樣

~ enjoy it

週四
2016年12月22日


face
Docker swarm visualizer 小記

OS: openSUSE Leap 42.1


之後想來寫 docker swarm service 的一些文章, 但是在這之前, 先來寫個 docker swarm visualizer 文章, 之後也會想寫 container 監控的文章, 逼自己唸書 :)

Docker swarm visualizer Github 網頁
  • 只針對 swarm mode 來監控

檢查 docker 版本
# docker --version
Docker version 1.12.1, build 8eab29e

開始前先檢查 port 8080 因為預設走 port 8080, 但是也可以在啟動的時候指定
# netstat  -tupln |  grep 8080


# docker  run  -it  -d  -p 8080:8080 -e  HOST=localhost   -v /var/run/docker.sock:/var/run/docker.sock   manomarks/visualizer

dfeb32c64f0d6058c2e0f6afa64cc5241c9eabadac969a4a6b8e0fef6263b67e


觀察 port 8080

# netstat -tupln | grep 8080
tcp        0      0 :::8080                 :::*                    LISTEN      2061/docker-proxy

這邊要注意的是上面的 -e  HOST=localhost 指的是 listen IP, 不一定是 docker 的 IP, 所以如果用上面的方式就是只有本機可以看得到.

所以如果要可以讓其他機器也看得到, 就要把 HOST= 後面換成要讓人家連線的 IP

# docker  run  -it  -d  -p 8080:8080 -e  HOST=YOURIP   -v /var/run/docker.sock:/var/run/docker.sock   manomarks/visualizer

執行起來就像這個樣子

2016-12-22 18-30-32 的螢幕擷圖.png

這樣沒有感覺, 那就建立個簡單的 service 來看看好了 :)


確認目前服務狀態
# docker   service   ls
ID  NAME  REPLICAS  IMAGE  COMMAND

建立 測試服務
# docker  service  create  --name my_web  nginx
23exrpem6knnov6sws2hwra85

# docker  service  create  --name my_web2 --replicas 2  nginx
32ui333mlslesfjdgi1degpu1

# docker  service  create  --name my_web3 --replicas 3  nginx
7ynvbcdpwulfdqotq0lenyqox


檢查服務狀態
# docker  service  ls
ID            NAME     REPLICAS  IMAGE  COMMAND
23exrpem6knn  my_web   1/1       nginx  
32ui333mlsle  my_web2  2/2       nginx  
7ynvbcdpwulf  my_web3  3/3       nginx  

在 visualizer 上面呈現的樣子

2016-12-22 18-38-43 的螢幕擷圖.png

今天先這樣, 後面留待寫 docker service 文章來配合


~ enjoy it


週三
2016年11月16日


face
這個月初去參加 OCS Tokyo Fall

因為只有四天的時間, 就考慮來實驗去日本不租用 wifi 路由器或是 sim 卡

先來談談 OSC ( Open Source Conference ) Japan會議
去年有參加 LinuxCon Japan, 但是覺得商業的味道太重, 分享與交流比較少, 我個人還是喜歡社群分享比較強烈的會議 ( 笑 )
但是這次的會議認識了很多日本朋友


OSC JapanFOSDEM 都是我非常想參加的會議
大量社群與不同元素的人集中在同一個地方交流, 是我很想體驗的 :)

OSC Tokyo Fall 今年舉辦地點在 明星大學
但是我第1個印象就是安達充的 Touch ( 笑 )


一進來就有清楚的指引以及議程表


當然 openSUSE Japan 也有來 booth, 大會方有給第一次來參加的人還有學生不同的 Badge也是一個非常貼心的設計

 

來會議當然少不了吉祥物 :)

來會場的人真的很多, 然後不同性質的社群都有來參與, 也有各式各樣的元素 

 

當然也少不了 Clonezilla 來跟日本的使用者交流 :)


這樣的會議有來真的是太好了 :)
希望可以持續來參與

另外有關於 免費的 wifi 部份
這次因為只來四天, 所以就實驗一下日本的 免費提供 wifi

先說結論:  如果不用持續查資料或是一直打卡, 在東京使用免費 wifi 個人覺得是可行的

主要裝的 App 是 Japan Connected-free Wi-Fi http://www.ntt-bp.net/jcfw/tw.html

這個 App 可以主動連接提供的 wifi 熱點


但是他忘記跟你說
必需先跟他有相關的申請或是關係 :p

所以我是利用 NAVITIME for Japan Travel 這個 APP
https://play.google.com/store/apps/details?id=com.navitime.inbound.walk&hl=zh_TW

點選 FREE Wi-Fi 來看附近的免費 wifi , 還有加入的方式



這次主要用下列幾個

Free Wi-Fi & Tokyo
FreeSpot
Family Mart

Lawson

全家或是Lawson的點非常多, FreeSpot 與 Free Wi-Fi & Tokyo 在很多地方也很好用


下次如果是短期的會議

我想我應該就會直接利用 Free Wi-Fi 了 :)


~ Enjoy it



週五
2016年11月11日


face
最近由於建立快速建立環境的關係
使用 Clonezilla 來建立相關環境, 之前的作法都是使用 光碟的作法
現在 USB 隨身碟的容量都已經很大了, 故使用隨身碟現在會是更好的作法

OS: openSUS Leap 42.1
USB 隨身碟 16 or 32 GB

目前考慮最方便的方式就是將隨身碟切兩個 FAT 的分割區
  • 分割區 1 : 大小約 500 MB, 建立 clonezilla 使用
  • 分割區 2:  剩下的所有空間, 儲存 images 使用


接下來就來製作 Clonezilla USB Live 隨身碟吧


我是選擇 amd4 CPU 架構, 然後下載 zip 檔案
2016-11-12 00-07-10 的螢幕擷圖.png
製作的方式可以參考官網 http://clonezilla.nchc.org.tw/clonezilla-live/

首先 來建立分割區
這邊我是使用 USB 16GB 隨身碟

使用 yast2 disk 切割分割區
#yast2  disk

刪除所有隨身碟上面的分割區
YaST 會提示目前已經掛載, 選取 Unmount
2016-11-12 00-10-59 的螢幕擷圖.png

將隨身碟建立兩個分割區, 如同上面的規劃

2016-11-12 00-11-47 的螢幕擷圖.png

建立掛載點 /mnt/usb
# mkdir   /mnt/usb

將剛剛建立的分割區掛載上來
#mount   /dev/sdb1    /mnt/usb/

檢視掛載資訊
# df  -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G  8.0K  3.9G   1% /dev
tmpfs           3.9G  376M  3.5G  10% /dev/shm
tmpfs           3.9G  2.3M  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda2       108G   78G   29G  73% /
/dev/sdb1       501M     0  501M   0% /mnt/usb


進入剛剛的下載目錄
#cd    /home/sakana/下載/

將 clonezilla 檔案解壓縮到 /mnt/usb

#unzip   clonezilla-live-2.4.9-17-amd64.zip   -d   /mnt/usb/
檢視相關資訊
#ls   /mnt/usb/
Clonezilla-Live-Version  EFI  GPL  boot  home  live  syslinux  utils

進入到相關目錄
#cd   /mnt/usb/utils/linux/

執行 makeboot.sh  ( 後面的 /dev/sdb1 請指定你的 USB 的FAT 分割區 )
#bash   makeboot.sh   /dev/sb1
This command will install MBR and syslinux/extlinux bootloader on /dev/sdb
Clonezilla files are assumed to be on /dev/sdb1
--------------------------------------------
Machine:                                  :
Model: IT1170 USB Flash Disk (scsi)
Disk /dev/sdb: 16.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
1      1049kB  526MB   525MB   primary  fat16        lba, type=0c
2      526MB   16.2GB  15.7GB  primary  fat32        lba, type=0c

--------------------------------------------
Are you sure you want to continue?
[y/n]  y

OK! Let's do it!
--------------------------------------------
File system of /dev/sdb1: vfat
--------------------------------------------
sdb1 is not marked as bootable! The partition table of /dev/sdb:
--------------------------------------------
:
Model: IT1170 USB Flash Disk (scsi)
Disk /dev/sdb: 16.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
1      1049kB  526MB   525MB   primary  fat16        lba, type=0c
2      526MB   16.2GB  15.7GB  primary  fat32        lba, type=0c

--------------------------------------------
Do you want to mark it as bootable ?
[y/n]  y

OK! Let's do it!
Running: parted -s /dev/sdb set 1 boot on
--------------------------------------------
Do you want to install MBR on /dev/sdb on this machine "                                 " ?
[y/n] y

OK! Let's do it!
Running: cat "/mnt/usb/utils/mbr/mbr.bin" > /dev/sdb
--------------------------------------------
Do you want to install the syslinux boot files on /dev/sdb1 on this machine "                                 " ?
[y/n] y
OK! Let's do it!
A filesystem supporting Unix file mode for syslinux is required. Copying syslinux to /tmp/linux_tmp.7aG0YD
‘/mnt/usb/utils/linux/syslinux’ -> ‘/tmp/linux_tmp.7aG0YD/syslinux’
Running: "/tmp/linux_tmp.7aG0YD/syslinux" -d syslinux -f -i "/dev/sdb1"
//NOTE// If your USB flash drive fails to boot (maybe buggy BIOS), try to use "syslinux -d syslinux -fs /dev/sdb1", i.e. running with "-fs".
syslinux ran successfully in installation mode.
Done!

接下來就可以使用這個 USB 來進行 Clonezilla 作業了

~ enjoy it



週四
2016年10月27日


face
Docker swarm mode with openSUSE Leap 42.1

OS: openSUSE Leap 42.1

3 個 node
  • 1 個 manager node
  • 2 個 worker node

# docker  --version
Docker version 1.12.1, build 8eab29e

Manager node 上面

初始化 swarm, 如果有多張網卡就要使用 --advertise-add 指定 IP
# docker   swarm   init   --advertise-addr   192.168.100.254
Swarm initialized: current node (bhmgljncagkfzsnhob3d9ricd) is now a manager.

To add a worker to this swarm, run the following command:

   docker swarm join \
   --token SWMTKN-1-5iju0vxuje0wkczh52qdwa73k0xq3s6jd8coql0wrlogo57l5c-8nl9nbnxs192kgu09kotylwd8 \
   192.168.100.254:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

使用 docker  info 觀察 Swarm 啟動狀況
# docker   info  |   grep  Swarm
Swarm: active

檢查 node 資訊
# docker  node   ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
bhmgljncagkfzsnhob3d9ricd *  docker1   Ready   Active        Leader


在所有 worker node 上面
加入 swarm,
使用 剛剛 docker swarm init 顯示出來的資訊加入 ,或是使用 #docker swarm join-token work 查詢

# docker   swarm   join \
  --token  SWMTKN-1-5iju0vxuje0wkczh52qdwa73k0xq3s6jd8coql0wrlogo57l5c-8nl9nbnxs192kgu09kotylwd8 \
 192.168.100.254:2377


Manager node 上面

檢查相關資訊
# docker   node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
8268xbtnb28i9sy2tbkwlz7i0    docker2   Ready   Active        
bhmgljncagkfzsnhob3d9ricd *  docker1   Ready   Active        Leader
ezwivow6sctk9wiit19g89fz7    docker3   Ready   Active  


到此 swarm mode  佈署成功

建立測試服務



參考文件




週四
2016年10月13日


face
OS: openSUSE Leap 42.1


之前的測試環境用的是測試版本的 repo, 目前官方已經到 1.12.1 所以就想進行重新安裝
重新安裝前, 先記下移除 swarm mode 相關程序


Docker 版本
# docker --version
Docker version 1.13.0-dev, build dcdf2b4


使用的來源
# zypper   repos  -E
#  | Alias                                  | Name                                                                            | Enabled | GPG Check | Refresh
---+----------------------------------------+---------------------------------------------------------------------------------+---------+-----------+--------
1 | Virtualization_containers_experimental | Docker Experimental Packages (openSUSE_Leap_42.1)                               | Yes     | (r ) Yes  | Yes

目前的測試環境是 3 個 nodes
先使用 docker  node ls 來列出所有的 node


# docker   node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
91ilfph3oq77e1jfwfzm1hm3g    docker3   Ready   Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


因為要重新安裝, 所以就把上面的服務都移除了
# docker  service  ls
ID  NAME  REPLICAS  IMAGE  COMMAND

參考官方移除的程序


移除所有 work node
以我的環境來說, 我有兩個 work nodes, 一個 manager node


首先到 work node 上面進行 node 移除動作
使用 docker  swarm  leave 指令移除 node


# docker   swarm   leave
Node left the swarm.


回到 manager node 上面觀察
會發現 Availability 為 Down


# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
91ilfph3oq77e1jfwfzm1hm3g    docker3   Down    Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


# docker   node  rm  docker3
docker3

觀察結果
# docker   node   ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


在執行 docker  rm 的時候, node 必須狀態為 Down 才可以移除, 否則就會出現警告並不能執行


# docker   node  rm  docker2
Error response from daemon: rpc error: code = 9 desc = node 71llz5z3q8f390s9l47qeypue is not down and can't be removed


接下來到 所有的 work node 離開 swarm mode
並進行 docker  node  rm


回到 manager node
目前只剩下 manager node
# docker  node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


觀察目錄
# du  -sh   /var/lib/docker/swarm/raft/
123M /var/lib/docker/swarm/raft/


使用 docker swarm leave 指令離開, 因為是 manager node 所以會被提示使用 --force
# docker  swarm  leave
Error response from daemon: You are attempting to leave the swarm on a node that is participating as a manager. Removing the last manager erases all current state of the swarm. Use `--force` to ignore this message.

# docker  swarm  leave  --force
Node left the swarm.


再次觀察
# du  -sh  /var/lib/docker/swarm/
4.0K /var/lib/docker/swarm/


到這邊就可以了
接下來就是在各個 node 移除實驗的 repos, 以及移除 docker 套件重新安裝


# zypper   -n   remove    docker


# yast2   repositories


:)


先記下來


~ enjoy it


參考文件


週六
2016年09月24日


face
Open Build Service 實作練習 Workshop 101

OS: openSUSE Leap 42.1

預先準備

首先設定 API 的 URL
# osc    -A   https://api.opensuse.org

Your user account / password are not configured yet.
You will be asked for them below, and they will be stored in
/root/.oscrc for future use.

Creating osc configuration file /root/.oscrc ...
Username: 輸入帳號
Password: 輸入密碼

建立完之後家目錄會產生  .oscrc  以及 .osc_cookiejar
  • ~/.oscrc 為相關apiurl 以及帳號資訊, 檔案權限為 600, 後續可以用 ring 來處理


使用 osc 指令進行 check out 專案  osc  co   home:使用者帳號
# osc  co  home:sakana

觀察目錄就會出現專案的資料夾
# ls
.bash_history  .dbus        inst-sys        .oscrc    .Xauthority bin            .gnupg       .local          .rnd
.config        home:sakana  .osc_cookiejar  .viminfo

切換到專案目錄
# cd   home\:sakana/

使用 osc mkpac 指令建立 package, 這次workshop 使用的是  ctris
# osc  mkpac   ctris
A    ctris

再次觀察
# ls
ctris  gmchess  Helloworld-test  jUploadr  .osc  owncloud
進入 套件工作目錄
# cd   ctris/

修改 .spec 檔案, 可以參考講師提供的  http://paste.opensuse.org/8035d628
# vi  ctris.spec

Name:           ctris
Summary:        Console based Tetris clone
URL:            http://www.hackl.dhs.org/ctris/
License:        GPL-2.0
Group:          Amusements/Games/Action/Arcade
Version:        0.42
Release:        1
Source:         %{name}-%{version}.tar.bz2
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  ncurses-devel
Requires:       ncurses

%description
An ASCII version of the well known game Tetris

%prep
%setup -q

%build
make

%install
%make_install
%debug_package

%clean
rm -rf $RPM_BUILD_ROOT;

%files
%defattr(-,root,root)
%doc AUTHORS COPYING README TODO
%doc %{_mandir}/man6/ctris.6.gz
/usr/games/ctris

%changelog

Notes
  • 在 openSUSE 環境內 #vi  xxxx.spec 會自動套入 .spec 格式
  • BuildRequires 為編譯過程中需要的套件
  • Requires 則為執行需要的套件

抓取套件  source code
# wget  http://goo.gl/zWJXyd -O ctris-0.42.tar.bz2

觀察目錄
# ls
ctris-0.42.tar.bz2  ctris.spec  .osc

觀察.osc 目錄
# ls   .osc/
_apiurl  _files  _osclib_version  _package  _project

使用 osc   vc 指令填寫 chang log
# osc  vc

填入 change log
-------------------------------------------------------------------
Sat Sep 24 07:11:09 UTC 2016 -

- OBS workshop

# ls
ctris-0.42.tar.bz2  ctris.changes  ctris.spec  .osc

觀察目錄
# ls .osc/
_apiurl  _files  _osclib_version  _package  _project

標記要新增或是移除的檔案
# osc   addremove
A    ctris.spec
A    ctris.changes
A    ctris-0.42.tar.bz2

觀察目錄, 多了 _to_be_added
# ls .osc/
_apiurl  _files  _osclib_version  _package  _project  _to_be_added

# cat  .osc/_to_be_added
ctris.spec
ctris.changes
ctris-0.42.tar.bz2

到目前為止都是在 local

接下來進行 commit ( -ci ) 以及上傳到 build.opensuse.org
#