顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - duncanlo

頁: [1] 2 3 ... 12
1
DevOps 討論版 / [docker]Container之變數傳導
« 於: 2016-02-28 23:46 »
執行Container時:
代碼: [選擇]
sudo docker run -id -e VAR1=VAL1 ubuntu /bin/bash
代碼: [選擇]
sudo docker run -id -e VAR1=$VARx ubuntu /bin/bash
代碼: [選擇]
sudo VAR1=VAL1 docker run -id -e VAR1 ubuntu /bin/bash
套用某個系統變數(直接指定VAR,不用給VAL,但不吃一般User的,可能是root才能行):
代碼: [選擇]
sudo docker run -id -e LANG ubuntu /bin/bash
由某個檔讀取:
代碼: [選擇]
sudo docker run -id --env-file ./ENV.LIST ubuntu /bin/bash
一次性執行:
代碼: [選擇]
sudo docker exec -it CONTAINER_ID /bin/bash -c "export VAR1=VAL1 && CMD"
執行中的Container再加入VAR=VAL:
(目前Docker版本無此功能)

Ref:
代碼: [選擇]
https://docs.docker.com/engine/reference/run/#env-environment-variables
代碼: [選擇]
https://docs.docker.com/engine/reference/commandline/run/

2
DevOps 討論版 / [docker]一次執行多個指令
« 於: 2016-02-26 23:21 »
用shell
代碼: [選擇]
docker exec mycontainer /path/to/test.sh

代碼: [選擇]
docker exec mycontainer /bin/sh -c "cmd1;cmd2;...;cmdn"
Ref:
代碼: [選擇]
http://stackoverflow.com/questions/31578446/running-a-script-inside-a-docker-container-using-shell-script

3
0. 前言源由

  監控 (Mornitoring & Control) 系統一直都是IT環境中不可或缺的一個環節,多年 IT 的發展,在監視 (Monitoring) 這個領域已有眾多成熟的解決方案,而控制 (Control) 這部份,由於平台廣度支援考量的因素,現有成熟的解決方案多半為成本較高的商用軟體,拜於 DevOps 概念之興起,自動化 (Automation) 的需求與發展也越趨成熟.

  自動化並非是取代 IT 人員的職位,反而是增加 IT 的產能與減少人為錯誤的發生,這對 IT 發展是正面的助力與效益.

  本文撰寫的目的,僅是分享初步體驗心得,故無需高深技術或是程式開發等能力,只需要有基本 IT 概念及操作能力即可.

  標題已經寫明要十分鐘搞定,故請恕我刪去許多功能介紹.

  其實各平台已有安裝包,但這邊考量的角度為以最小或適當權限執行應用服務,以 root 或 administratior 雖然可以作到所有事,但若是自動化的過程中,有 shell 或 batch 的撰寫錯誤(如 output 錯導入某 disk 裝置)造成系統異常,是會造成服務停擺,或你的環境有被授權允許安裝非辨公的軟體嗎?故這篇文章會先以一般用戶 (Normal User) 及減少安裝 (Portable) 的環境作介紹.


1. 系統需求
  • Java7, 建議 Java8
  • 256MB-1GB 磁碟可用空間

2. 軟體安裝
  • 到 Jenkis 網站,下載最新版 jenkins.war (本文撰寫時為 v1.646)
代碼: (URL) [選擇]
https://jenkins-ci.org/
  • 執行
代碼: (Shell) [選擇]
java -jar jenkins.war
  • 操作
代碼: (URL) [選擇]
http://localhost:8080

3. 新增作業
  • 點選[新增作業]
  • 於[作業名稱]中填入一個作業的名稱,如 testtask
  • 挑選[建置 Free-Style 軟體專案]
  • 按[OK]完成
  • 於[建置觸發程序]項目中勾選[定期建置]
  • 於[排程]中填入排程週期時間
    • 假如沒指定便不會自動定期執行,需要手動執行
    • 格式如 cron, 可用 # 開頭作附註,如每5分鐘執行一次,就填入下面的內容
代碼: (Cron) [選擇]
#每5分鐘
5 * * * *
  • 於[建置]項目中點選[新增建置步驟],挑選[執行 Windows 批次指令]
  • 於[指令]內容中,填入欲執行的 Windows 指令,如
代碼: (Shell) [選擇]
ping localhost
  • 按[儲存]完成
  • 點選[回到儀表板]應該就可以看到剛才新增的作業在列表中,而且開始依指定的週期進行作業執行

4. 功能測試
  • 正常執行狀況
    • 作業執行成功的終端機輸出 (Console Output) 結果如下:
代碼: (Log) [選擇]
由計時器啟動
建置中 工作區 /home/testuser/.jenkins/jobs/Task1/workspace
[workspace] $ /bin/sh -xe /tmp/hudson1841741314535644877.sh
+ date
日  2月 14 10:42:00 CST 2016
+ ping -c 5 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.019 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.012 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.053 ms
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.055 ms

--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.012/0.030/0.055/0.020 ms
+ echo Hello!!
Hello!!
+ date
日  2月 14 10:42:04 CST 2016
Finished: SUCCESS
  • Ping 不到 IP
    • 因為執行結果是異常
    • 會呈現作業錯誤的狀態
    • 作業執行失敗的終端機輸出 (Console Output) 結果如下:
代碼: (Log) [選擇]
由計時器啟動
建置中 工作區 /home/testuser/.jenkins/jobs/Task3/workspace
[workspace] $ /bin/sh -xe /tmp/hudson8024915939564601609.sh
+ date
日  2月 14 10:44:04 CST 2016
+ ping -c 5 localhost123
ping: unknown host localhost123
Build step '執行 Shell' marked build as failure
Finished: FAILURE
  • 指令打錯
    • 因為指令執行是異常
    • 會呈現作業錯誤的狀態
    • 作業執行失敗的終端機輸出 (Console Output) 結果如下:
代碼: (Log) [選擇]
由計時器啟動
建置中 工作區 /home/testuser/.jenkins/jobs/Task4/workspace
[workspace] $ /bin/sh -xe /tmp/hudson6497490487894411825.sh
+ date
日  2月 14 10:47:04 CST 2016
+ ping123 -c 5 localhost
/tmp/hudson6497490487894411825.sh: 3: /tmp/hudson6497490487894411825.sh: ping123: not found
Build step '執行 Shell' marked build as failure
Finished: FAILURE


5. 系統管理
  • 透過 Jenkins CLI 模式
    • 解壓縮 jenkins.war 可以找到 jenkins-cli.jar
    • 或是於安裝後,於用戶<家目錄>中的某個目錄中找到,詳細路徑如下
代碼: (Path) [選擇]
C:\Users\Testuser\.jenkins\war\WEB-INF\jenkins-cli.jar
  • 重新啟動
代碼: (Shell) [選擇]
java -jar jenkins-cli.jar -s http://localhost:8080 restart
  • 關閉服務
代碼: (Shell) [選擇]
java -jar jenkins-cli.jar -s http://localhost:8080 shutdown

6. 安全控管
  **以下安全性設定內容適用於 Linux 平台,於 Windows 平台,可能無法出現某些選項供設定**

  預設啟動 Jenkins 後是沒有任何安全性控管,任何連接到 Jenkins Web 管理頁面,皆可以進行作業的新增或異動,若想限制特定用戶及允許作業設定的權限,而其他用戶僅能檢視作業執行進度及狀況,需參照以下步驟進行安全性設定:
  • 勾選[管理 Jenkins]
  • 點選[設定全域安全性]
  • 勾選[啟用安全性]
  • 於[存取控制] - [安全性領域]中,勾選[Jenkins 內建使用者資料庫 ]
  • 於[存取控制] - [授權]中,勾選[登入成功的使用者可以做任何事 ]
  • 點選[儲存]
  再次以連接 Jenkins Web 管理頁面後,點選頁面右上角的[註冊],以註冊一個新用戶(由 Jenkins 管理帳號).
  當以註冊用戶登入後,便可進行作業的設定修改,而未登入者僅能檢視作業的執行狀況.


7. 應用埸景
  應用在程式開發 (Program Development) 已有太多案例,可以自行逛網查詢.
  以系統管理 (Infra. Admin) 角度看 Jenkins, 它其實就是一個集中式的排程器,它可以應用在一些場景,如:
  • 爬蟲程式
  • 跑 Batch 匯入 BI
  • D2D2T 備份作業稽核
  • 結合日常管理的 Batch 或 Shell
  因為 Jenkins 會紀錄是否成功及訊息內容,故可以套用在需要集中式管理,或是事後需要調閱執行結果的需求上,管理人員只需要專精在自己擅長的平台上作管理行為設計,其他自動化的部份可以交給 Jenkins 負責.


~~於2016情人節完成初版~~

4
雜七雜八 / 大家一起來報名吧...
« 於: 2005-10-21 18:17 »
考季又到,這次不影響考績,但影響$$,
大家沒事就一起來報認證考試吧...

5
LDAP 討論區 / SSO的商業方案
« 於: 2005-10-03 11:45 »
今早跟Novell的人開會,
覺得他們的SSO相關Solution還不錯,
技術上是用Proxy的方式作,
所以不需要在後端植入agent或client,
比自已要搞LDAP跟改一堆code比起來,
成本及風險差粉多,計價方式還算合理,
有這需求的人可以去找些資料來比較一下...

6
沒什麼,有感而發,該花錢就要花錢,不要再來怪以前怎麼又怎樣...

故事超多說不完...

7
雜七雜八 / 預祝大家明天颱風假快樂...
« 於: 2005-08-31 10:28 »
這次可能會停電又停水,
大家回去要先儲水備用哦...

8
雜七雜八 / 快~~~~
« 於: 2005-08-16 17:40 »
SA的討論區是不是換地方了,
變的好快哦....

9
我是用一台DDS2 Autoloader作測試,
它一次可以塞6捲磁帶進去...

在freebsd下,
用tar+mtx就可以作到寫滿一捲磁帶,
自動換帶繼續寫下一捲磁帶,
不受限你一捲DDS3磁只有12G的容量限制,
真是太讚了....
(不過,當然我最多一次只能備72G啦!!)

10
在一台9205的主機,DB有一個tablespace,它有兩個datafile...

有什麼方式,
可以只刪其中一個datafile,
而不需要整個tablespace重倒?!

11
老R6還可以跑的很順,真是太讚了...

CPU Info
代碼: [選擇]
cpu             : 604
clock           : 95MHz
revision        : 3.4 (pvr 0004 0304)
bogomips        : 199.47
machine         : PReP IBM PS830/PS850/7248 (Carolina)
Upgrade CPU
L2              : not present
simms           : 0:16M 1:16M 2:16M 3:16M 4:32M 5:32M

12
Linux 討論版 / [分享]變色龍家族 SuSE
« 於: 2004-11-17 09:29 »
今天Sapow跟我說的中文網站,
請問大家還有沒有什麼站台可以分享的?!

http://www.suse.idv.tw/

13
請問一下,
Oracle 9i RMAN在作Restore時,
set until scn 或 time,
它的時間點是要參考何處?!

就是當我要作Restore時,
我要查什麼scn或time來用?!
是db內,還是catalog內?!

14
因為認證要$,所以免錢那套大概不會送測,
可是某一家最常見的怎麼沒在榜上呢?!
(可能是他們都搞自己的框框,不符合標準吧...)

The Open Brand - Register of Certified Products
http://www.opengroup.org/openbrand/register/dj.htm

假如你有用AP Server,像Webphere或Oracle App,
那IBM Tivoli Directory Server或Oralce Internat Directory,
是可以考慮的...

15
新版的IBM Tivoli Directory Server可以使用DB2當LDAP的後端DB,
而且它提供GUI/Web Admin的功能,這些軟體除了可以在IBM下載外,
也可以免費訂出SEK光碟套件來取得.

下面的文章,在IBM China也可以找到簡體中文篇!

-----
Speed-start your Linux app 2004: Installing the IBM Tivoli Directory Server V5.2 for Linux
http://www-106.ibm.com/developerworks/linux/library/l-ss4-itds/index.html


Build an LDAP-based address book
http://www-106.ibm.com/developerworks/edu/os-dw-linuxldap-i.html


Authenticating Linux users with IBM Directory Server
http://www-106.ibm.com/developerworks/eserver/articles/LinuxIBMDirectory.html


Using an LDAP directory for Samba authentication -- tutorial
http://www-106.ibm.com/developerworks/eserver/tutorials/smb_ldap.html


Setting up Replication in IBM Directory Server 5.1
http://www-128.ibm.com/developerworks/tivoli/library/t-idsreplica/index.html

16
最近實在被一台Oracle DB的主機狂爛給害慘了...

從FC2,RHAS,Turbolinux Server換到SuSE,
我甚至連FreeBSD都試過了!
(雖然在FreeBSD上跑Oracle是非常不建議)

其實我知道那主機的跟Linux的問題,
是出在雙CPU的舊板子SMP及ACPI跟Linux Kernel不太合,
雖然我下了參數把ACPI停用,
不過似乎沒什麼用處,
Loading一大起來還是照當...

後來下了參數限制max cpu數只有一顆,
對,就是只active一顆cpu就好了...
那這樣,我還是要用雙cpu的pc幹什麼...

不過,它跑NT 4到是滿穩的...
(可能是NT 4沒支援什麼APM/ACPI的吧!)

同樣的軟體系統,
在IBM xServer上就跑的超順的,
難道ServerWorks的chip支援就比較好嗎?!

所以,並不是說所有的舊pc,
用來跑Linux就可以跑的很順....

最近拿到某家for PowerPC的Linux版本,
有興趣在老R6或AS/400上跑Linux的人,
再來一起討論吧...

17
雜七雜八 / [其它]貴族的認證
« 於: 2004-11-04 21:07 »
跟據最近Oracle網站的消息,從11/1開始,
假如沒有上過9i的四門課或是10g的二門課,
Oracle將不再寄發證書給通過oca,ocp考試的人!
而且8i到今年底就到期...

這代表什麼?!
證照的數量得以控制?!
通過認證者的品質可以保證?!
還是...
只有"貴族"才能取得oracle認證?!

認證到底是種肯定,門檻還一種型式?!

有認證我可以得到什麼?!
沒有認證我又可以達到什麼?!

雖然20萬一般企業還付的起,
但換來的是一個IT人員的幾年賣身契,
還是其他的什麼加值效益呢?!

不過,就現在的IT市場來說,
沒有認證,有能力的工程師,一樣可以作Service,
沒有認證,只有要錢,一樣可以吃貨賣產品...

18
MIS 討論區 / [分享]了解事實首頁
« 於: 2004-10-26 21:17 »
給一些MIS要寫報告參考用,
可以參考一下比較分析報告的部份...

了解事實首頁
http://www.microsoft.com/taiwan/windowsserversystem/facts/default.mspx


假如你還說英文看不懂,
那我就真的沒辦法幫你了...

19
MIS 討論區 / [建議]優質資訊部門的介紹
« 於: 2004-10-25 13:50 »
我想這兒有很多人是從事MIS性質的工作,
資訊工作本來就是一門很專業的學科,
有沒有可以從一些公司或公家單位 優質的資訊部門,
介紹他們的組織,工作流程....這類的,
讓大家可以參考別人是怎麼作成功的,
假如可以組團參觀那是更好的...

目前小弟對氣x局跟群x證券很好奇說....

20
我在Oracle 9i上試RMAN,
使用最基本的方式來測,
不用catalog db,
RMAN backup到disk,
可是我的資料還是回不來,
有人知道為什麼嗎?
下面是我測試的步驟...

1.db startup (open)

2.sqlplus 用 scott 登入

3.建立一個 table 叫 table1 .
create table table1 (col1 number(10), col2 varchar2(10));

4.新增一些資料到 table1 內.
insert into table1 values (1,'abc');
...

5.登入 RMAN
rman target / nocatalog

6.用 RMAN 備份(應該是Full,查文章就預設是Full)
backup database;

7.檢視備份.
list backup;

8.回到sqlplus,用scott把table1刪了.
sqlplus /nolog
connect scott/tiger
drop table table1

9.把db關了
sqlplus> shutdown immediate

10.回到 RAM
rman target / nocatalog

11.把db開在mount模式
startup force mount

12.回覆db.
restore database;

13.把db切至open.
alter database open;

14.回到sqlplus,用scott登入
select * from table1; =============>這時侯就說沒有table1,也真的沒有!

21
白爛主機2000W的電源供應器出來了...(當然是吃220V)
http://www.ibm.com/isource/cgi-bin/goto?it=usa_annred&on=304-173

Oh~~ 你...到底要選Pizza機還是大餅機呢?!

2000W好像比電磁爐跟烤箱還要大,
果然是居家不宜...一定要買個冰箱給他放...

22
這邊不知道會不會有銀行的OP人員..

有人知道,在AS/400上,要使用AIX/Linux/Windows上的DB2 UDB,
假如DB的字碼設定是繁體中文(950),那在AS/400上的User Profile,
字碼要設定多少?!因為AS/400上沒有950說...
(目前純英文環境是OK的!)

23
database 討論版 / Oracle 9i使用RMAN備份的問題
« 於: 2004-10-06 23:25 »
請問一下,
想要使用RMAN來備份DB,
那是否需要另外建一個DB,
專門用作RMAN Catalog用?!
再把要備份的DB註冊到RMAN Catalog DB內.

我沒開Catalog DB時,
也可以備份,但好像是備到一個檔內,
設了Catalog DB,
備份就超吃Resource的...

找了一些文章,
有的有說要建Catalog DB,
有的又沒說需要建,
到底這有什麼差別嗎?!

24
database 討論版 / [問題]Oracle Web OEM的錯誤
« 於: 2004-09-21 13:29 »
不知道有沒有使用Oracle 9i Web OEM,
我連到 http://oracle9i_server_ip:3339/ 後,
Launch Server 輸入OMS的帳號密碼,
可是都出現:

Could not instantiate adapter: org.omg.CORBA.INITINALIZE
[completed=MAYBE, reason=java.net.BindException:
Cannot assign requested address]

的錯誤訊息,試了一兩台都會,
有人有遇過嗎?

25
有沒有人去考704 DB2 v8.1 Advanced Admin,
要看什麼書?!

26
我不知道我的順序有沒有錯,
不過到目前為止似乎是可以Run的,
在Oracle 9i安裝完後,
我啟動服務的順序是...

1. lsrnctl start
2. agentctl start agent
3. start OEMREP DB
4. oemctl start oms
5. apachectl start

不知道這樣有沒有錯...

27
課後溫習+認證考試 / OCP 9i
« 於: 2004-09-20 13:21 »
我查了下考試資訊,
考Oracle 9i似乎最少要去上過一門課,
假如我只想考試就好,
有什麼"較便宜"的方式或選擇嗎?
希望有考過OCP的人分享一下心得...

28
Network Block Device (TCP version)
http://nbd.sourceforge.net/

有沒人用nbd再作volume/disk mirror,
效能如何?! 我也想來比較一下...

29
雜七雜八 / [問題]LPI-1
« 於: 2004-08-30 17:07 »
請問有人知道LPI網站上說的,
101A 101B 101Paper這幾科,
有什麼不同嗎?

30
在FreeBSD上安裝TSM Client for Linux的方式,其實跟裝Server版一樣,
先安裝linux_base套件在FreeBSD上,將FreeBSD設定成模擬Linux相容環境,
再安裝TSM Client for Linux的RPM套件即可,安裝linux_base套件的方式,
請自行參考其他相關的文章及手冊.

TSM Client for Linux套件從IBM FTP站抓回來解開後,會有幾個RPM套件檔,
不過最基本的只需要安裝BA及API兩個即可運作,只需要用rpm指令將套件安裝:

代碼: [選擇]
rpm -Uvh TIVsm-API.i386.rpm
rpm -Uvh TIVsm-BA.i386.rpm


套件的安裝是有順序的,必需要先安裝API才能安裝BA.

預設的安裝路徑是在/opt/tivoli/tsm/client內,但在FreeBSD+linux_base下,
拿到不同版本的TSM Client for Linux,有可能會裝到不同的路徑下,
我的習慣是跟裝TSM Server for Linux一樣,固定在/usr/opt/tivoli/tsm內.

TSM Client for Linux的RPM套件完成後,接下來就是要修改TSM Client設定檔,
請先修改/usr/opt/tivoli/tsm/client/bin/dsm.sys,範例如下:

代碼: [選擇]
SErvername  SERVER1
COMMmethod         TCPip
TCPPort            1500
TCPServeraddress   192.168.10.11
nodename freebsd
passwordaccess generate


TSM Server for Linux預設的主機名是SERVER1,主機IP及Nodename視需要調整,
若有需要使用Web Client,便需要設定passwordaccess這個參數.

再來修改/usr/opt/tivoli/tsm/client/bin/dsm.opt去指定使用那一台TSM主機:

代碼: [選擇]
SErvername  SERVER1

執行備份作業的使用者,也需要宣告幾個環境變數,像我是用root,而且用tcsh shell,
就是在root的[家目錄]下,編輯.tcshrc這個檔,把下面三行加入...

代碼: [選擇]
setenv DSM_DIR     /usr/opt/tivoli/tsm/client/ba/bin
setenv DSM_CONFIG  /usr/opt/tivoli/tsm/client/ba/bin/dsm.opt
setenv DSM_LOG     /usr/opt/tivoli/tsm/client/ba/bin


在套用變數或重新登入後,便可以開始使用TSM Cliet.

在使用TSM Client前,請先確定TSM Server已註冊該Node,或是將Registration
設為Open,讓Node自動註冊.

若要使用Web Client功能,請先執行BA Client下的dsmcad指令,再用Browser
連接至 http://<server_ip>:1581/ 即可.

下面是當TSM Client for Linux on FreeBSD連接上TSM主機後,由管理端檢視
用戶的狀況:

代碼: [選擇]
Query Node:

Node Name                 Platform Policy Domain  Days Since Days Since Locked?
                                   Name                 Last   Password
                                                      Access        Set
------------------------- -------- -------------- ---------- ---------- -------
CLIENT                    (?)      STANDARD                1          1   No  
FREEBSD                   Linux86  STANDARD               <1          1   No


Query Session:

  Sess Comm.  Sess     Wait   Bytes   Bytes Sess  Platform Client Name        
Number Method State    Time    Sent   Recvd Type          
------ ------ ------ ------ ------- ------- ----- -------- --------------------
     2 Tcp/Ip IdleW  2.9 M      718     327 Node  Linux86  FREEBSD            
    49 HTTP   Run      0 S        0       0 Admin WebBrow  ADMIN              
                                                   ser



想要了解更多有關IBM Tivoli TSM的非官方資訊,可以到魔王Mephi家的Tivoli版參觀!!!
魔界煉金室 http://www.mephi.idv.tw/phpbb2/index.php

頁: [1] 2 3 ... 12