星期二, 8月 28, 2018

Raspberry Pi 3 with openSUSE Leap 15 小記

Raspberry Pi 3 with openSUSE Leap 15 小記

Hardware: Raspberry Pi 3
OS: openSUSE Leap 15


距離上次安裝 Raspberry Pi 已經 8 個月了 :)
參考:

我還是使用 X11 的桌面環境


將 SD Card 插入 linux 內, 這邊以  /dev/sdf 為例

使用下列指令建立 openSUSE Leap 15 with RaspberryPi
  • 下面的 /dev/sdf 是你的 SD Card 千萬不要殺錯人


# xzcat  openSUSE-Leap15.0-ARM-X11-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz |  dd  bs=4M of=/dev/sdf   iflag=fullblock  oflag=direct ; sync

好了之後將 SD Card 放入 Raspberry Pi 開機就可以
  • 第一次因為要安裝, 所以會比較久, 去喝個咖啡動一動吧
  • 預設帳號是 root  密碼是 linux


這個版本就沒有無線網路的 bug, 所以使用 #yast2  lan 設定好無線之後就直接使用


~ enjoy it

Reference:

星期六, 8月 25, 2018

netbox with docker in azure

netbox with docker in azure

看到 digital ocean 出了一個專案 netbox 就想說來試試看

上面看到有人有做 docker 的版本

OS:  openSUSE Leap 42.3  in Azure

首先登入 Azure 的 openSUSE Leap 42.3

切換成 root
> sudo   su -

啟動 docker 服務
# systemctl  start  docker

安裝 docker-compose 指令
# zypper  install  docker-compose

Clone 專案
# git  clone  -b   master  https://github.com/ninech/netbox-docker.git

Cloning into 'netbox-docker'...
remote: Counting objects: 652, done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 652 (delta 44), reused 72 (delta 38), pack-reused 563
Receiving objects: 100% (652/652), 214.17 KiB | 5.22 MiB/s, done.
Resolving deltas: 100% (355/355), done.

觀察資訊
# ls
.bash_history  .gnupg bin netbox-docker

進到專案目錄
# cd   netbox-docker/

openSUSE Leap 42.3 預設用的 docker-compose 版本比較舊 ( 1.8.1 )
  • openSUSE Leap 15 版本就夠新了1.17


先移除舊版的 docker-compose 1.8.1
# zypper  remove  docker-compose

Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
 docker-compose

1 package to remove.
After the operation, 512.8 KiB will be freed.
Continue? [y/n/...? shows all options] (y): y
(1/1) Removing docker-compose-1.8.1-13.1.noarch ..................................................................................[done]

下載最新版的 docker-compose

# sudo curl  -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)  -o   /usr/local/bin/docker-compose

 % Total    % Received % Xferd  Average Speed Time    Time Time Current
                                Dload Upload Total Spent Left  Speed
100   617 0   617 0  0 5300 0 --:--:-- --:--:-- --:--:--  5318
100 11.2M  100 11.2M  0 0 18.1M      0 --:--:-- --:--:-- --:--:-- 42.1M


加上執行權限
# chmod  +x   /usr/local/bin/docker-compose

確認 docker-compose 版本
# /usr/local/bin/docker-compose  --version
docker-compose version 1.22.0, build f46880fe

如果不想輸入絕對路徑可以登出再登入

執行 docker-compose  pull
# /usr/local/bin/docker-compose  pull

Pulling postgres      ... done
Pulling redis         ... done
Pulling netbox-worker ... done
Pulling netbox        ... done
Pulling nginx         ... done

觀察相關資訊
# docker   images

REPOSITORY          TAG IMAGE ID            CREATED SIZE
ninech/netbox       latest 4a7492cae085        3 days ago 480MB
redis               4-alpine 08bef618c30a        3 weeks ago 28.7MB
postgres            10.4-alpine 962ed899c609        4 weeks ago 72.9MB
nginx               1.15-alpine 36f3464a2197        4 weeks ago 18.6MB


使用 docker-compose 來佈署
# /usr/local/bin/docker-compose   up    -d

Creating network "netbox-docker_default" with the default driver
Creating volume "netbox-docker_netbox-static-files" with local driver
Creating volume "netbox-docker_netbox-nginx-config" with local driver
Creating volume "netbox-docker_netbox-media-files" with local driver
Creating volume "netbox-docker_netbox-report-files" with local driver
Creating volume "netbox-docker_netbox-postgres-data" with local driver
Creating volume "netbox-docker_netbox-redis-data" with local driver
Creating netbox-docker_postgres_1      ... done
Creating netbox-docker_redis_1    ... done
Creating netbox-docker_netbox-worker_1 ... done
Creating netbox-docker_netbox_1        ... done
Creating netbox-docker_nginx_1         ... done

觀察相關資訊
# docker  ps
CONTAINER ID        IMAGE   COMMAND  CREATED STATUS              PORTS NAMES
62ef5260ecc1        nginx:1.15-alpine   "nginx -c /etc/net..."  About a minute ago Up 56 seconds       80/tcp, 0.0.0.0:32768->8080/tcp   netbox-docker_nginx_1
f2d531e60cde        ninech/netbox:latest   "/opt/netbox/docke..."  About a minute ago Up About a minute                                     netbox-docker_netbox_1
1011ab8e3225        ninech/netbox:latest   "python3 /opt/netb..."  About a minute ago Up About a minute                                     netbox-docker_netbox-worker_1
cd6f25108265        redis:4-alpine   "docker-entrypoint..."  About a minute ago Up About a minute   6379/tcp netbox-docker_redis_1
af54cd3234aa        postgres:10.4-alpine   "docker-entrypoint..."  About a minute ago Up About a minute   5432/tcp netbox-docker_postgres_1

可以觀察 docker-compose.yml 或是 docker ps 知道, 目前走 port 32768   

也可以使用 指令查詢
# /usr/local/bin/docker-compose  port   nginx 8080
0.0.0.0:32768

在 Azure 上面的網路安全群組開放  port 32768



點選  右上方的 login
輸入預設的帳號 admin
密碼 admin
進行登入


使用 admin 登入之後就可以針對 Site 還有其他的物件進行新增以及修改


不過當然第一要務就是去修改密碼吧 :)

然後預設建立的 API Token 應該也可以刪除重新建立



看了一下, 目前沒有語系以及中文化設定
但是也是一個管理機櫃或是機器的好選項

找天來嘗試一下管理

~  enjoy it


Reference



星期五, 8月 24, 2018

Nextcloud with docker 測試小記

Nextcloud with docker 測試小記

Server:
OS: openSUSE Leap 42.3 in Azure

Client:
OS: openSUSE Leap 42.3


因為 dropbox linux client 未來有可能不支援 非加密 EXT4 以外的檔案系統, 所以就來想替代方案, 目前鎖定 nextcloud, 而且他也有 docker 的版本


官方網站 https://nextcloud.com/

連線到 openSUSE Leap 42.3 in Azure


切換為 root


>sudo  su  -


啟動 docker 服務
# systemctl   start  docker


一開始先來測試 單一容器 + HTTP 存取


Lab1: 單一容器 + HTTP存取


Server 端:


執行 nextcloud 容器
# docker  run  -d  -p  80:80  nextcloud


# docker   ps
CONTAINER ID        IMAGE COMMAND                  CREATED STATUS PORTS                NAMES
60e3b19053a3        nextcloud "/entrypoint.sh ap..."   7 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp   friendly_easley


在 Azure 設定 security group 允許 port 80 通過


連線 nextcloud (預設使用 SQL-Lite)


一開始會建立管理者帳號
輸入 使用者名稱 / 密碼 -- > 點選 完成設定


就會順利完成設定, 無痛完成




Client 端:


OS:  openSUSE Leap 42.3


接下來就是安裝 Client 的應用程式


使用 zypper 安裝
# zypper  install  nautilus-extension-nextcloud  nextcloud-client
Loading repository data...
Reading installed packages...
Resolving package dependencies...


The following 17 NEW packages are going to be installed:
 libQt5Positioning5 libQt5Sensors5 libQt5Sensors5-imports libQt5WebChannel5
 libQt5WebChannel5-imports libQt5WebKit5 libQt5WebKit5-imports
 libQt5WebKitWidgets5 libgypsy0 libnextcloudsync0 libqt5keychain1
 libqt5keychain1-lang nautilus-extension-nextcloud nextcloud-client
 nextcloud-client-lang python-nautilus typelib-1_0-Nautilus-3_0


The following 2 recommended packages were automatically selected:
 libqt5keychain1-lang nextcloud-client-lang


The following package is suggested, but will not be installed:
 nextcloud-client-doc


17 new packages to install.
Overall download size: 11.0 MiB. Already cached: 0 B. After the operation,
additional 44.9 MiB will be used.
Continue? [y/n/...? shows all options] (y):

安裝完成之後, 就可以執行 Nextcloud desktop 程式




一開始會出現Nextcloud精靈 ( 翻譯沒有很準確 )
輸入 伺服器位置 -- > 下一個



輸入使用者名稱與密碼 -- >  下一個




設定要同步的選項 -- > 點選 連線中



因為有跟檔案總管整合, 所以可以使用瀏覽器的方式或是資料夾的方式 -- > 點選 完成




預設會在 $HOME/nextcloud , 可以觀察同步狀況



Lab2: 2個容器(  nextcloud & MariaDB ) + HTTP存取


Nextcloud 預設使用 SQLite, 但是他有建議, 如果是用桌面版程式同步, 就不建議用 SQLite
要使用 MySQL / MariaDB 或是其他的資料庫


接下來就來實作 使用 2個容器 nextcloud 與 mariadb 來提供服務


Server 端:


接下來嘗試使用 MySQL / MariaDB 方式
將剛剛的 container 刪除 ( 使用 docker stop / docker rm )


參考官方的方式 https://github.com/nextcloud/docker
使用 docker-compose 方式來建立


首先要先安裝 docker-compose 指令
使用 zypper 安裝


# zypper   install   docker-compose


Loading repository data...
Reading installed packages...
Resolving package dependencies...


The following 32 NEW packages are going to be installed:
 docker-compose python-PySocks python-PyYAML python-appdirs python-backports python-backports.ssl_match_hostname
 python-cached-property python-certifi python-cffi python-chardet python-cryptography python-docker-py python-docker-pycreds
 python-dockerpty python-docopt python-enum34 python-functools32 python-idna python-ipaddress python-jsonschema python-ndg-httpsclient
 python-packaging python-py python-pyOpenSSL python-pycparser python-pyparsing python-requests python-setuptools python-six
 python-texttable python-urllib3 python-websocket-client


The following 5 recommended packages were automatically selected:
 python-PySocks python-cryptography python-idna python-ndg-httpsclient python-pyOpenSSL


32 new packages to install.
Overall download size: 3.2 MiB. Already cached: 0 B. After the operation, additional 15.3 MiB will be used.
Continue? [y/n/...? shows all options] (y): Y


參考官方的設定建立 docker-compose.yml 檔案
  • 檔案內紅色字體內, 請自行設定 MySQL 的密碼
  • 我把官方的 port 8080 改為 port 80


# vi   docker-compose.yml


version: '2'


volumes:
 nextcloud:
 db:


services:
 db:
   image: mariadb
   restart: always
   volumes:
     - db:/var/lib/mysql
   environment:
     - MYSQL_ROOT_PASSWORD=nextcloud
     - MYSQL_PASSWORD=nextcloud
     - MYSQL_DATABASE=nextcloud
     - MYSQL_USER=nextcloud


 app:
   image: nextcloud
   ports:
     - 80:80
   links:
     - db
   volumes:
     - nextcloud:/var/www/html
   restart: always


使用 docker-compose 指令建立
# docker-compose   up   -d


接下來連線到 nextcloud


要注意的是
  • 資料庫要選 MySQL / MariaDB
  • 資料庫帳號密碼 要使用 docker-compose.yml 內的設定
  • 主機的部份因為是使用 docker, 然後是分開的 container, 這邊就用 db:3306






觀察相關資訊


# docker   ps
CONTAINER ID        IMAGE COMMAND                  CREATED STATUS PORTS                NAMES
de1741e2abae        nextcloud "/entrypoint.sh ap..."   27 seconds ago Up 24 seconds 0.0.0.0:80->80/tcp   root_app_1
296498164d13        mariadb "docker-entrypoint..."   29 seconds ago Up 26 seconds 3306/tcp             root_db_1

Client 的連線方式一樣, 就不重複了


接下來文章再來挑戰, HTTPS 方式


也算往 nextcloud 邁進一步


~ enjoy it

Reference: