neoesque

Making Life Better


  • 首頁

  • 標籤

  • 分類

  • 歸檔

  • 搜尋

Saltstack 使用心得&簡介

發表於 2013-06-30, 週日 | 分類於 資訊 |
文章字數: 6.9k | 所需閱讀時間 ≈ 17 分鐘

身為一個系統管理者,當你管理的機器數量只有十來台時,你可以很輕鬆的一台一台進去管理、設定機器,但是隨著服務開始搞大了,機器數量變成數十台時,也許會需要一些工具來輔助管理,之前我都是用 Fabric 來幫忙管理,不過 Fabric 有個缺點是他只是一個下指令的管理工具,當然我之前都硬幹,用 put 硬把他當成管理 configuration 的工具,上傳完了再下一個 reload 的指令,當然這樣也不是不行,不過似乎真的是一個很土炮的方法,但是隨著機器的數量越來越大,已經到達幾百臺的時候,就算是用 Fabric + parallel 其實還是覺得很怪,一來是雖然他已經平行處理了,但是他的 output 卻變成無序的,也就是當受管理的機器有 output 他就直接顯示在管理端上,有點惱人就是,另外一個是 Fabric 需要自己寫 Group 管理,要自己定義東西,而不能透過簡單的 query 來對想要的機器下指令就好,所以最近開始想要轉型使用 configuration management tool,常見的選擇是 puppet、chef、CFEngine 之類的,不過最近有個當紅的 OpenSource 軟體出現了,那就是 SaltStack。

閱讀全文 »

solve dmesg appeared nouveau No connectors reported connected with modes after upgrading kernel to 3.8 or later

發表於 2013-05-31, 週五 | 分類於 資訊 |
文章字數: 18k | 所需閱讀時間 ≈ 44 分鐘

My Linux box installed a nVidia GeForce GT210 (a.k.a. Chipset GT218) graphic card. Before kernel 3.7, I append video=VGA-1:1440x900@60 to kernel parameters. Because I use a 2-meter-long VGA line to connect my computer and monitor, I have to enforce using VGA port as display output. And it works perfectly.

The dmesg before kernel 3.7 says

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[drm] Initialized drm 1.1.0 20060810
[drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x0a8280a2)
[drm] nouveau 0000:01:00.0: Checking PRAMIN for VBIOS
[drm] nouveau 0000:01:00.0: ... appears to be valid
[drm] nouveau 0000:01:00.0: Using VBIOS from PRAMIN
[drm] nouveau 0000:01:00.0: BIT BIOS found
[drm] nouveau 0000:01:00.0: Bios version 70.18.2c.00
[drm] nouveau 0000:01:00.0: TMDS table version 2.0
[drm] nouveau 0000:01:00.0: MXM: no VBIOS data, nothing to do
[drm] nouveau 0000:01:00.0: DCB version 4.0
[drm] nouveau 0000:01:00.0: DCB outp 00: 01000302 00020030
[drm] nouveau 0000:01:00.0: DCB outp 01: 02000300 00000000
[drm] nouveau 0000:01:00.0: DCB outp 02: 02011362 0f220010
[drm] nouveau 0000:01:00.0: DCB outp 03: 01022310 00020010
[drm] nouveau 0000:01:00.0: DCB conn 00: 00001030
[drm] nouveau 0000:01:00.0: DCB conn 01: 00202161
[drm] nouveau 0000:01:00.0: DCB conn 02: 00000200
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xD0B7
[drm] nouveau 0000:01:00.0: 0xD40D: Condition still not met after 20ms, skipping following opcodes
[drm] nouveau 0000:01:00.0: 0xD411: Condition still not met after 20ms, skipping following opcodes
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xD608
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xE0DA
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xE10F
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xE2C2
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xE327
[drm] nouveau 0000:01:00.0: 0xE327: Condition still not met after 20ms, skipping following opcodes
[TTM] Zone kernel: Available graphics memory: 3051544 kiB
[TTM] Zone dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
[drm] nouveau 0000:01:00.0: Detected 512MiB VRAM (DDR2)
mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
[drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
[drm] nouveau 0000:01:00.0: 3 available performance level(s)
[drm] nouveau 0000:01:00.0: 0: core 135MHz shader 270MHz memory 135MHz voltage 850mV
[drm] nouveau 0000:01:00.0: 1: core 405MHz shader 810MHz memory 405MHz voltage 900mV
[drm] nouveau 0000:01:00.0: 3: core 589MHz shader 1402MHz memory 400MHz voltage 1000mV
[drm] nouveau 0000:01:00.0: c: core 405MHz shader 810MHz memory 405MHz voltage 900mV
[drm] nouveau 0000:01:00.0: allocated 1440x900 fb: 0x310000, bo ffff8801a78dc000
fbcon: nouveaufb (fb0) is primary device
[drm] nouveau 0000:01:00.0: no native mode, forcing panel scaling
Console: switching to colour frame buffer device 180x56
fb0: nouveaufb frame buffer device

The kernel 3.7 or prior version was enforced using VGA as output successfully. And the resolution is right.

But after upgrading to 3.8 or above, I found that the parameter video=VGA-1:1440x900@60 causes a faulty screen after booting. I google it, and find some people bump into the same problem. No signal to monitor after kernel modesetting fails Problems with kernel-3.8 and kernel-3.9 modesetting

The kernel 3.8 or above says

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[drm] Initialized drm 1.1.0 20060810
nouveau [ DEVICE][0000:01:00.0] BOOT0 : 0x0a8280a2
nouveau [ DEVICE][0000:01:00.0] Chipset: GT218 (NVA8)
nouveau [ DEVICE][0000:01:00.0] Family : NV50
nouveau [ VBIOS][0000:01:00.0] checking PRAMIN for image...
nouveau [ VBIOS][0000:01:00.0] ... appears to be valid
nouveau [ VBIOS][0000:01:00.0] using image from PRAMIN
nouveau [ VBIOS][0000:01:00.0] BIT signature found
nouveau [ VBIOS][0000:01:00.0] version 70.18.2c.00.04
nouveau [ PFB][0000:01:00.0] RAM type: DDR2
nouveau [ PFB][0000:01:00.0] RAM size: 512 MiB
nouveau [ PFB][0000:01:00.0] ZCOMP: 960 tags
nouveau [ PTHERM][0000:01:00.0] FAN control: none / external
nouveau [ PTHERM][0000:01:00.0] fan management: disabled
nouveau [ PTHERM][0000:01:00.0] internal sensor: yes
[TTM] Zone kernel: Available graphics memory: 3050978 kiB
[TTM] Zone dma32: Available graphics memory: 2097152 kiB
[TTM] Initializing pool allocator
[TTM] Initializing DMA pool allocator
mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
nouveau [ DRM] VRAM: 512 MiB
nouveau [ DRM] GART: 512 MiB
nouveau [ DRM] TMDS table version 2.0
nouveau [ DRM] DCB version 4.0
nouveau [ DRM] DCB outp 00: 01000302 00020030
nouveau [ DRM] DCB outp 01: 02000300 00000000
nouveau [ DRM] DCB outp 02: 02011362 0f220010
nouveau [ DRM] DCB outp 03: 01022310 00020010
nouveau [ DRM] DCB conn 00: 00001030
nouveau [ DRM] DCB conn 01: 00202161
nouveau [ DRM] DCB conn 02: 00000200
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
nouveau [ DRM] 3 available performance level(s)
nouveau [ DRM] 0: core 135MHz shader 270MHz memory 135MHz voltage 850mV
nouveau [ DRM] 1: core 405MHz shader 810MHz memory 405MHz voltage 900mV
nouveau [ DRM] 3: core 589MHz shader 1402MHz memory 400MHz voltage 1000mV
nouveau [ DRM] c: core 405MHz shader 810MHz memory 405MHz voltage 900mV
nouveau [ DRM] MM: using COPY for buffer copies
nouveau 0000:01:00.0: No connectors reported connected with modes
[drm] Cannot find any crtc or sizes - going 1024x768
nouveau [ DRM] allocated 1024x768 fb: 0x70000, bo ffff8801a7c37c00
fbcon: nouveaufb (fb0) is primary device

The kernel 3.8 says it cannot find a connector?

I read the documents of KMS, and then I solved the problem.

閱讀全文 »

E-M5 木質手把

發表於 2013-05-16, 週四 | 分類於 3C |
文章字數: 2.8k | 所需閱讀時間 ≈ 7 分鐘

再次從 HOSON 團隊拿到了一個測試手把。

不同的是這次手柄是木質的 !

E-M5 的主人們不用再羡慕只有 E-P5 有限量版的木質手柄了 :P

借用一下 E-P5 木質手柄的圖

因為選用的木頭不同所以顏色是不一樣的,E-P5 是加拿大楓木,而版友所選的是質地經過測試很堅固的柚木。

設計團隊測試了柚木跟槐木,發現槐木還是軟了一點,他們更看過紫檀木,不過後來因為成本過高就作罷了。

註: 柚木在 wiki 裡面記載 「機械性質極強、乾燥性良好,收縮率小、木質強韌、耐久性高、對菌類及蟲害抵抗力強 … 木理通直、質地堅硬、細緻,材面含油脂之觸感,乾燥性良好,耐久性高,為所有木材中膨脹收縮最少者一,尺寸安定性佳。材面木紋美觀優雅、且加工容易、為世界上高級木材之一。」

閱讀全文 »

Safari 無法建立 nginx ssl_ciphers 使用 RC4 的連線

發表於 2013-04-27, 週六 | 分類於 資訊 |
文章字數: 13k | 所需閱讀時間 ≈ 31 分鐘

前幾天幫部門把原本提供 HTTPS 的 squid 換成 nginx,結果馬上被反應 Mac 上面的 Agent 不能連線但是又不知道為什麼,因為其他的瀏覽器 Chrome Firefox 不管作業系統 Windows Linux Mac 上的都可以連真的很弔詭,麻煩同事用跟 Agent 一樣的 Framework 重寫一個簡單的版本也不行,測了很久也找不太到癥結點,後來靈機一動,何不試看看 Safari … 結果果然不出所料… Unable to establish a secure connection XDDD 搞什麼連 Safari 也連不了,這樣子要 Debug 我就可以自己來了,不然要一直麻煩同事跟我對測不好意思,一開始先用 tcpdump 發現 Server 送 Certificate 給 Client 之後 Client 就自己斷掉 connection ?! WTF 這太沒有頭緒了吧,後來上網搜尋 ssl connection fail safari,結果一路看看看就看到了這個 HTTPS requests fail on sites which immediately close the connection if TLS 1.1 negotiation is attempted, on Ubuntu 12.04,起因是 OpenSSL 1.0.1 的一個 Bug,版上建議降成 OpenSSL 1.0.0 就可以了,因為我要啟用 nginx 的 spdy 所以一定要用 OpenSSL 1.0.1 才可以,不過秉持實驗的精神只好先解除這個功能,於是我就編譯了 nginx with openssl 1.0.0k,然後結果…靠背還是一樣 Safri 不能連其他都可以!不信邪改用 0.9.8y,結果在一模一樣的設定下這個 Safari 就可以連了 = = (這哪招),總之越來越神秘,只好先回到 nginx with openssl 1.0.1e,(就是死命要 spdy 就對了 XD),後來在沒什麼想法的情況下只好打開 nginx 的 debug mode error_log xxxxx debug;,瞧瞧裡面有什麼。

結果就看到

1
2
3
4
5
6
SSL handshake handler: 0
[debug] 7585#0: *1 SSL_do_handshake: 0
[debug] 7585#0: *1 SSL_get_error: 5
[info] 7585#0: *1 peer closed connection in SSL handshake while SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
[debug] 7585#0: *1 close http connection: 14
[debug] 7585#0: *1 SSL_shutdown: 1
閱讀全文 »

用 map 的功能把 nginx 變成簡單的應用程式防火牆

發表於 2013-04-14, 週日 | 分類於 資訊 |
文章字數: 6.1k | 所需閱讀時間 ≈ 15 分鐘

要幫 nginx 增加安全性的話,大概首推 modsecurity 這個模組了,不過目前他只有支援 nginx 1.2 穩定版,尚未支援 1.3 開發版,基本上具有下列功能

  1. 超過 16000 規則防範下列攻擊
  • SQL injection
  • Cross-site Scripting (XSS)
  • Local File Include
  • Remote File Include
  1. 可客製化規則,保護下列的應用
  • WordPress
  • cPanel
  • osCommerce
  • Joomla
  1. 包含了 OWASP Core Rule Set
  2. IP 聲望偵測
  3. Malware Detection

不過有一些在更簡單的功能,像是有時候會自己想擋一些 bot,或者要判斷合法的 referrer 才給過之類的就不在這個之內了,這時候我們可以利用 map 來幫我們做簡單的過濾。

閱讀全文 »

E-M5 副廠手把

發表於 2013-04-13, 週六 | 分類於 3C |
文章字數: 3.3k | 所需閱讀時間 ≈ 8 分鐘

E-M5 的手感雖然有做出手把的弧形但是因為實在是太淺了,所以還是稍微差了一點,像我是手小的都覺得 E-M5 不好握的話,手大的應該就更難了,原廠賣的手把是跟電池底座一起賣的要九張小朋友多一點的價格,真的是見鬼了,而且不喜歡加個電池底座多一個累贅,不過現在救星來了! HOSON 團隊帶來了一個鋁鎂合金手把 MA-1

沒錯!他叫做阿魯把,是把不是八,剛看到時覺得挺妙的,作者補充說是阿嚕咪(aluminum)的手把啦~ 而且設計製造都是在台灣,純正的 MIT!

閱讀全文 »

E-M5 12mm 25mm

發表於 2013-03-24, 週日 | 分類於 3C |
文章字數: 5.5k | 所需閱讀時間 ≈ 14 分鐘

三年前原本買了 GF2 + LUMIX G 14mm F2.5 ASPH 要給我妹,結果他竟然嫌棄說 14mm 沒辦法變焦… 0rz… 這實在是,結果後來還是買了一般的小 DC 給她 = =+,然後去年入手了 LEICA DG SUMMILUX 25mm F1.4 ASPH

大光圈的加持真的不是蓋的等效 50mm 也相當的好取景,但是最近對焦距離 30cm 真的稍遠不過他本來就被定位在人像鏡所以其實還好,整體來說還是超級棒的一顆鏡頭,只是去參觀室內的展覽(像是小叮噹誕生前百年特展)難免又被我妹嫌棄說為什麼拍照都要站這麼遠 XDDD,以下是 GF2 搭 25mm 拍出來的照片。

閱讀全文 »

nginx 設定檔規則概要

發表於 2013-02-26, 週二 | 分類於 資訊 |
文章字數: 7.9k | 所需閱讀時間 ≈ 20 分鐘

這篇是記錄一些 lighttpd 轉 nginx rewrite rule 的實作與一些注意事項,最後會講一些 squid 轉 nginx 的技巧。

這裡先講一些跟 nginx rewrite 有關的重點。

首先 nginx 算是分成 location 跟 rewrite,lighttpd 是有 url.rewrite、url.rewrite-repeat 跟 url.redirect,其中 lighttpd 的 url.rewrite 就是 rewrite once 而 url.rewrite-repeat 則是重複一直 rewrite 的意思,這個則對應到 nginx rewrite 後面接的參數,也就是 break 跟 last,break 就是 rewrite 到此為止不要再跑 rewrite 了,但是 last 就會在重頭跑 rewrite 一次,而且 last 也是 rewrite 這個 directive 的預設值,所以如果你的 rewrite 不小心變成 loop (nginx 預設是 rewrite 10 次後就噴 500)請加上 break。至於 lighttpd 的 url.redirect 其實在 nginx 也是透過 rewrite 完成的,主要是加 redirect 跟 permanent 的參數,分別是回 302 跟 301。rewrite 的用法大約如下:

閱讀全文 »

Linux cgroups

發表於 2013-01-01, 週二 | 分類於 資訊 |
文章字數: 3.7k | 所需閱讀時間 ≈ 9 分鐘

cgroups 是 Linux 的一個特色,全名是 control groups,最簡單的概念就是控制資源的分配包含了隔離、記錄的功能,最早是由 Google 的工程師開發的,並且在 2.6.24 正式進了 Kernel,後來也陸續加了不少功能,而且在 3.3 之後又加了網路優先權(priority)功能。後來的 LXC (LinuX Containers) 就是用了 cgroups 的功能來的。

由於是從 Kernel 控制的所以幾乎什麼都可以管理,舉凡 blkio (管理輸入輸出的 block device ,像是硬碟、USB)、cpu (設定忙碌時能使用的 CPU time)、cpuacct (做統計用的)、cpuset (設定由那顆 CPU 執行運算)、device (限制能使用的設備)、memory (限制記憶體用量)、net_cls (似乎跟網路有關),管理的範圍是以 Group 為主,所謂的 Group 可以是同一個使用者、同一個群組、同樣的 Process。

最簡單使用 cgroups 的方式就是裝 libcgroup 來管理

閱讀全文 »

刪除 memcachedb log 檔

發表於 2012-11-20, 週二 | 分類於 資訊 |
文章字數: 781 | 所需閱讀時間 ≈ 2 分鐘

memcachedb 用的是 BerkeleyDB 每 10M 會輸出一次 log file,所以久而久之你的資料夾會充滿一堆 log.xxxxxxxxxx x 是數字,依序編列,在正常的 Production 環境大概不出三天就會比原本的 DB 還多了一倍的大小,如果沒有要還原的需求的話是不需要這些 log 的,清除的方法有兩個,一個是手動刪,一個是透過 memcachedb 清。

手動刪的話基本上就是用 find 就可以了,find /home/memcachedb_data/ -iname 'log*' | awk '{if (NR > 50) print}' | xargs -i -t rm -f {},如果是要透過 memecachedb 清則可以透過 telnet 或 netcat,指令是 db_archive。不過如果每次都要手動下未免也太累了,所以我們可以放在 crontab 裡自動化,要放在 crontab 裡面一定要搭配 netcat ,因爲 telnet 不支援檔案重導符號 < ,只要隨便開一個檔案填入下列內容

db_archive
quit

然後在 crontab 裏面增加 0 * * * * /usr/bin/netcat localhost 5566 < /root/cmd/memcachedb_rotate_logs 即可每小時自動清一次,其中 5566 就是 memcachedb 開的 port。

<i class="fa fa-angle-left" aria-label="上一頁"></i>1234…7<i class="fa fa-angle-right" aria-label="下一頁"></i>
neoesque

neoesque

neoesque's Linux Blog

65 文章
7 分類
41 標籤
RSS
GitHub Twitter FB Page YouTube Instagram
0%
© 2008 — 2023 neoesque | 148k | 6:09
由 Hexo 強力驅動
|
主題 — NexT.Pisces