星期三, 11月 18, 2015

在centos6裡升級GCC

Centos 6裡的GCC是4.4.7,而現在最新的版本是5,由於有些用戶的電腦都在用最新的,所以必須升級.如果要升級的話的確是比較麻煩,分分鐘會導致系統不穩定,當然肯定有辦法升級的,只是要花一點時間自己上網找,我第一次弄的時候也花了好幾天,走了許多冤枉路,後來還好找到這個網站,一步步的教導怎樣升級才把我的問題解決.

我直接用root帳戶來升級.

1. 確保gcc,gcc++已經安裝了
#yum install gcc gcc-c++

2. 然後檢查版本
#gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) - 按個人的伺服器而定

#g++ --version
g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) - 按個人的伺服器而定

#which gcc
/usr/bin/gcc

#which g++
/usr/bin/g++

3. 接著把相關的dependencies安裝
#yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686 (不然會面對一些問題)

4. 檢查gcc的版本
#svn ls svn://gcc.gnu.org/svn/gcc/tags | grep gcc | grep release
gcc-2_95-release/
...
gcc_4_9_2_release/
gcc-4_9_3_release/
gcc-5_1_0_release/
gcc_5_2_0_release/

5.開一個新的directory,用svn check out把source它下
#mkdir ~/sourceInstallations
#cd ~/sourceInstallations
#svn co svn://gcc.gnu.org/svn/gcc/tags/gcc_4_9_3_release/

6.下載prerequisites
#cd gcc_4_9_3_release/
#./contrib/download_prerequisites

7.升級新版本
#cd ..
#mkdir gcc_4_9_3_release_build/
#cd gcc_4_9_3_release_build/
#../gcc_4_9_3_release/configure && make && sudo make install && echo "success"

8.安裝完畢後,檢查新版本
#hash -r

#gcc --version
gcc (GCC) 4.9.3
#g++ --version
g++ (GCC) 4.9.3
#which gcc
/usr/local/bin/gcc
#which g++
/usr/local/bin/g++

9.再來最後一步
#echo "/usr/local/lib64" > usrLocalLib64.conf
#mv usrLocalLib64.conf /etc/ld.so.conf.d/
#ldconfig (這裡會出現這個"xxx is not an ELF file - it has the wrong magic bytes at the start.",可以不理他)

10.最後把sourceInstallations的directory丟掉
#cd ~/
#rm -rf sourceInstallations


相關網站:
https://www.vultr.com/docs/how-to-install-gcc-on-centos-6

星期四, 10月 29, 2015

在centos7安裝Gitlab還有https

Git是時下最普遍的版本控制系統,之前用過了網絡上的bitbucket,後來想要用才在深入去找資料才安裝.之前習慣了CVS,後來改用SVN用了一點時間來從新適應,現在改用git也是一樣,好在網絡的發達的確帶個人們很多方便,很多資料可循.

網絡版的git很好用,加上有方便的GUI.不過免費的沒幾個,通常免費的只供一兩個用戶,bitbucket就是其中一個有提供免費共5個用戶的配套,還有就是gitlab,網絡版的gitlab就少了invite user這個function,所以我打算自己裝在電腦裡.

跟著這個gitlab的網頁,就可以安裝gitlab了.

1. 在Centos 7安裝所需要的軟件:
#yum install curl openssh-server
#systemctl enable sshd
#systemctl start sshd
#yum install postfix                  (如果你需要用postfix)
#systemctl enable postfix         (如果你需要用postfix)
#systemctl start postfix
#firewall-cmd --permanent --add-service=http
#systemctl reload firewalld

2. 接下來安裝gitlab
#curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
#yum install gitlab-ce

3. 再來開啟gitlab
#gitlab-ctl reconfigure

4. 完成,可以登錄了,用你的瀏覽器,去你的伺服器的url.
Username: root, Password: 5iveL!fe
       
5. 如果你想用gmail來發電郵那就得加把勁,依循gitlab網頁的教導.
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md#smtp-on-localhost
打開/etc/gitlab/gitlab.rb,在 SMTP on localhost那部分

gitlab_rails['smtp_enable'] = true
Gmail
gitlab_rails['gitlab_email_from'] = 'my.email@gmail.com'
gitlab_rails['gitlab_email_reply_to'] = 'my.email@gmail.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "my.email@gmail.com"
gitlab_rails['smtp_password'] = "my-gmail-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html
事成後記得執行#gitlab-ctl reconfigure


如果還感覺到不完美,還可以安裝https,步驟如下:

1. 打開/etc/gitlab/gitlab.rb把external_url的http改去https
external_url "https://gitlab.example.com

2. 在/etc/gitlab裡建造一個ssl文件夾
#mkdir -p /etc/gitlab/ssl
#chmod 700 /etc/gitlab/ssl

3. 打開/etc/gitlab/gitlab.rb,更改以下的設置
nginx['redirect_http_to_https'] = true
nginx['enable'] = true
nginx['redirect_http_to_https_port'] = 80

4. 弄一個ssl.
#openssl genrsa -des3 -out /etc/gitlab/ssl/gitlab.domain.com.key 2048 (記得輸入Pass phrase)
#openssl req -new -key /etc/gitlab/ssl/gitlab.domain.com.key -out /etc/gitlab/ssl/gitlab.domain.com.
    Enter Country Name:
    Enter State or Province Full Name:
    ENter City Name:
    Enter Company Name:
    Enter Organization Unit Name:
    Enter server hostname: 192.168.1.15
    Enter  Admin Email Address:
    Skip Challenge Password (Hit Enter)
    Skip Optional Company Name (Hit Enter)
#cp -v /etc/gitlab/ssl/gitlab.domain.com.{key,original}  (拿掉pass phrase)
#openssl rsa -in /etc/gitlab/ssl/gitlab.domain.com.original -out /etc/gitlab/ssl/gitlab.domain.com.key
#rm -v /etc/gitlab/ssl/gitlab.domain.com.original
#openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitlab.domain.com.csr -signkey /etc/gitlab/ssl/gitlab.domain.com.key -out /etc/gitlab/ssl/gitlab.domain.com.crt
#rm -v /etc/gitlab/ssl/gitlab.domain.com.csr
#chmod 600 /etc/gitlab/ssl/gitlab.domain.com.*

5. 設定防火牆
#firewall-cmd --permanent --add-service=https
#systemctl reload firewalld


相關網頁:
https://about.gitlab.com/downloads/#centos7
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md#smtp-on-localhost
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md
http://www.bonusbits.com/wiki/HowTo:Setup_HTTPS_for_Gitlab
http://samwize.com/2014/07/24/how-to-setup-git-server-gitlab-with-ssl/
https://futurestud.io/blog/how-to-run-gitlab-with-self-signed-ssl-certificate/

星期一, 10月 12, 2015

MYSQL的 - ERROR 1130 (HY000): Host 'x.x.x.x' is not allowed to connect to this MySQL server

這db admin的工作我不太熟悉,這還是我第一次遇到這樣的問題,花了三天在浩瀚的網海裡終於找到一個出口,其實也不是什麼大不了的事情,就那permission方面的東東,我也弄了幾天.

故事是這樣的,上個禮拜負責mysql的同事來跟我說剛install好的mysql不能access,我從我的電腦試著用telnet來連接,結果真的不能,檢查了iptables,selinux等防火牆,都被我disable了,哪來的連接問題呢?

後來去那架伺服器本尊試著用mysql,結果用本尊的ip address也不能,只能用127.0.0.1或localhost才能登錄mysql.這下課更有趣了,連本尊都不能進,給了這個信息ERROR 1130 (HY000): Host 'x.x.x.x' is not allowed to connect to this MySQL server.

翻遍了個大小網頁,還好給我找到這個部落格.


- 要讓某電腦可以login mysql的話就在mysql裡執行這個command:
>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2';
>FLUSH PRIVILEGES;  


- 要讓全部人都可以連接mysql的話就執行這個command:
>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
>FLUSH PRIVILEGES;   


相關網頁http://it-troubleshoot.blogspot.my/2015/03/error-1130-when-accessing-remote-mysql.html?en 

星期五, 9月 04, 2015

AWS的Elastic IP address

每個AWS的EC2 instance都會有一個Public IP address,不過這個Public IP address會隨著你重新啟動你的instance而更改,也就是說那個Public IP address是DHCP自動assign的,所以如果你要在EC2裡host你的伺服器,好比如網頁,那你就必須申請一個Elastic IP address,這個IP address是不會隨著你重新啟動instance而改變,要注意的是這個Elastic IP address是必須要associate給你的一個instance,如果你沒有associate你的instance的話,那麼Amazon就會以小時計算來跟你算錢,畢竟IPv4已經是很珍貴了.

 

星期一, 8月 17, 2015

Apache2 VirtualHost error

最近都在忙著為伺服器搬家,由於有些負責人已經離職了,我只有廖化作先鋒頂著上,剛好有一個是牽涉到Apache2的項目,我把一切應該拷貝的抄去新的伺服器,大致上都弄好了,在start apache的時候,網頁是可以跑,只是在console出現了一下的問題:

[error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

網上的解決方案不是很多,還好在apache的官網看到config file裡漏了一項設定,如下:

原本的設定是NameVirtualHost *

Apache官網的設定NameVirtualHost *:80

就是說少了:80在NameVirtualHost的後面,我把它補上,在restart apache就行了.


相關連線: http://httpd.apache.org/docs/2.0/vhosts/name-based.html

星期四, 8月 13, 2015

開始使用EC2

寫了這樣多EC2不過好像沒有寫如何開始用.每個人都可以在AWS免費開一個戶口,在開設的時候需要填寫信用卡,然後就可以開free tier的服務,當然free tier都是低端的.有沒有額外服務我不清楚.

在這之前,電腦需要三個軟體來讓你登錄你的EC2instance:
1. Cygwin
2. Putty
3. Winscp 

一切就緒後,在EC2->Network & Security->Key Pairs裡弄一個key pair,這是讓你安全登錄你的EC2 instance,切記不要把它弄不見或刪除掉.過後你就可以在EC2開設全新的instance了,在開設instance的其中一個步驟會問你要用哪一個key pair,那時候就派上用場了.

下載key pair後記得拷貝一份放在安全的地方,放在cloud也行(dropbox,google drive)等,然後把其中的一個拷貝放進你在cygwin的home folder裡(c:cygwin/home/user/).那樣你才可以在cygwin上登入你的ec2 instance.


1. Cygwin
在cygwin登錄的command如下:
#ssh -i xxx.pem ec2-user@ip address

EC2的instance的default user是ec2-user,我在前一篇有教過怎樣給其他用戶登錄,依照之前的那一篇就可以讓你的user登錄EC2 instance了.



2. Putty
除此之外,你還可以用putty來登入,不過得先把你的key pair轉換成private key,用的也是putty的puttygen.

首先開啟puttygen,然後選擇load,在file type裡選All Files,打開你的c:/cygwin/home/user裡的xxx.pem,然後按下Save Private Key.


 好了後把剛才的private key拷貝到另外一個地方,再開啟putty,在SSH欄按browse,把剛才的private key attach上,再到回去主頁,把你的EC2的public ip address填上,save起來,然後在按open,你就可以ssh去你的EC2 instance了.



3. Winscp
如果有需要把文件上載到EC2 Instance(這是必然的,不然開EC2搞屁嗎),那得用winscp了.zai開啟了winscp後,按New Site,然後在SSH->Authentication,跟putty一樣把剛才的private key attach上,按ok,然後把你EC2的ip address,login name等填上,按login就可以了.




相關連線
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

星期二, 8月 11, 2015

AWS EC2鏈接VPC

2013年3月前的account都能支援EC2 Classic還有EC2 VPC,新的EC2 instance只能支援VPC,如果那些用戶擁有EC2 classic的話還是可以很容易就能鏈接去自己的VPC的.如下圖在Your VPCs下,right click你的VPC,然後Enable Classiclink,然後再回去你的EC2 instance那裡,right click選ClassicLink->Link to VPC,那你的EC2 Classic就能鏈接去VPC了. 


相關鏈接 https://aws.amazon.com/blogs/aws/classiclink-private-communication-between-classic-ec2-instances-vpc-resources/

星期四, 8月 06, 2015

AWS EC2 connection refused的問題

身為一個System Admin,最忌諱就是讓用戶擁有sudo, wheel, admin right, root等戶口,如果用戶一不小心,就會把整個伺服器搞砸. 

之前友人的公司就是出現這個狀況,某個用戶不小心把AWS EC2 Linux Instance的/var/empty/sshd的permission改去777,結果系統就把伺服器鎖起來,沒有人能進.所幸網上很多類似的問題,不然就"大獲"了.

他們找我幫忙看看,還好是雲端伺服器,我不用去現場解決,結果在AWS的admin console裡發現到/var/empty/sshd的permission被改了.我上網找了一下,有好幾個網頁的方案都一樣,我就採納了他們所推薦的.

步驟如下:
1. 登入AWS的admin console

2. 去EC2的instances,然後把正在running的instance暫停(stop掉)

3. create另外一個free tier的instance(可以省錢)

4. 在Elastic Block Store->Volumes裡把原本的instance attach去新的instance

5. Launch新的instance,在/mnt開一個新的文件夾, #mkdir folder

6. 把舊的instance mount去/mnt/folder

7. 把/mnt/folder裡的/var/empty/sshd的permissions改去751

8. 把新的instance暫停(stop)

9. 把舊的instance detach,再把它mount回舊的instance上,並把它改去/dev/xvda 

10. 把舊的instance重新啟動,就完成了. 

星期二, 8月 04, 2015

讓其他用戶進入AWS EC2

比起Azure,AWS的確比較複雜,界面還有操作方式都是,看來M$的主打的用戶technical knowledge不需要很強的techies,AWS主打用戶是Linux Knowledges很強的techies.在開了一個EC2 instance後,用自己設定的.pem就可以進入ec2-user的account,不過在EC2的linux環境當中,或許需要開幾個用戶給他們進入,我也搞了老半天在搞清楚怎樣做. 

1.首先裝上putty,然後用putty的puttygen來generate用戶的鑰匙,在完成後Save private key.通常是xxx.ppk.

2.接下來就是在EC2裡create user,.ssh folder還有authorized_keys

 # sudo su (if needed)
 # useradd user
 # cd /home/user
 # mkdir .ssh
 # chmod 700 .ssh
 # chown user:user .ssh
 # vim .ssh/authorized_keys  (把藍色部分裡的keys填上)





 # chmod 600 .ssh/authorized_keys
 # chown user:user .ssh/authorized_keys

3. 然後在putty或winscp裡就能login了,不要忘記在Auth裡帶上xxx.ppk,不然不能進.



星期四, 5月 28, 2015

Zenoss4.2.5不能顯示windows processor graph的問題

這次再寫的也是zenoss呵呵呵,應該用戶都會面對一個問題就是在zenoss上windows機的processor的graph不能顯示,我從上一次安裝就在找這個問題了,剛好最近有一點時間,經過幾天的明查暗訪,終於有轉角遇到solutions,就是在windows機上,安裝上snmp informat這個軟體,然後在zenoss裡再Model device一次,他就會顯現了.


另外一個我還沒搞清楚的就是zenoss不能顯示windows機的processor model,windows server則沒問題.不過當我用getif來檢視的時候,windows電腦的確不能把processor的型號正確的報告出來,看來是windows本身的問題,windows server則沒有這個問題.

星期四, 5月 14, 2015

再次安裝Zenoss4.2.5

上回安裝的Zenoss因為硬盤壞掉而報廢了,這次我又發現到更簡單的方法,就是跟著他們的wiki就對了.本來想裝Centos7,不過後來一些問題還是放棄了,用回Centos6.5,最近從ISO燒出來的DVD都好像有問題,不懂是ISO image的問題還是什麼的,Centos6.6的DVD也是不能用,就在安裝開始的時候找不到UI,真搞不懂,也沒那個時間來重複的試,就用回那最沒有問題的了.

這次我還是裝回4.2.5版本,最新版本之支援Centos7以上,沒法子了.

http://wiki.zenoss.org/Install_Zenoss

下載zenoss
#wget https://github.com/zenoss/core-autodeploy/tarball/4.2.5 -O auto.tar.gz 

解開壓縮檔案
#tar xvf auto.tar.gz

打開文件夾

#cd zenoss-core-autodeploy-*

跑安裝的script
#./core-autodeploy.sh  

基本上以上的動作應該是夠了,不過通常Centos6.5都會安裝了JRE,mysql等不必要的軟件,在安裝zenoss的過程當中會出現error,這時候不用緊張,把那些軟件逐一移除掉就可以了.
比如:
#yum remove mysql
#yum remove mysql-libs
#yum remove jna

星期四, 3月 19, 2015

安裝軟件遇到Windows Installer service could not be accessed

昨天在windows server 2003伺服器安裝新的軟件的時候遇上了一個棘手的問題,還好在網路發達的今日有很多可以供參考的資料,在臨危不亂的情況下試了一兩下就弄好了,謝天謝地.

我依照這在run那裡打上這一行command %windir%\Syswow64\Msiexec /regserver問題就迎刃而解了.由於是64原位的系統,我照樣把%windir%\system32\裡的MSiexec從新register.

相關連線https://support.microsoft.com/en-us/kb/315346#method1


星期一, 1月 26, 2015

在CentOS裝Zenoss4.2.5

Open source的方便就是同一個東西,可以用很多方法來做,上網找一找就有幾千篇如何如何的攻略,這也是最頭痛的地方,因為這些攻略都是一片一片不同的拼圖,要自己慢慢找然後把整張拼圖拼出來.Open Source不乏好軟件,有些也被大公司採用,好比如Chrome,Android,Firefox,MacOSX等都是有Open Source來的.

Zenoss是monitoring software,也是進來比較火紅的monitoring software,其他還有Nagios,Groundwork,Opennms,Zabbix, Centreon等.安裝這Zenoss也花了我不少時間,安裝不難,時間是花在如何把linux還有windows的電腦伺服器鏈接上Zenoss,參考了好多網絡上的文章,到最後自己拼出來自己的拼圖如下.

第一步就是安裝Zenoss,我是照著一下這個link來做的,如果這架安裝Zenoss的電腦沒有聯繫外界,記得在安裝後把iptables,ip6tables還有selinux拿掉.
1. http://geekpeek.net/install-zenoss-monitoring-server-centos-6/
2.  # /etc/init.d/iptables stop
     # chkconfig iptables off
     # /etc/init.d/ip6tables stop
     # chkconfig ip6tables off
3. # vi /etc/selinux/config
把SELINUX=enforcing換去disabled

第二步驟就是去windows的電腦或伺服器那裡安裝snmp.

再來就是把windows firewall的snmp port打開.
最後就是在services裡設定snmp了,把community換去public,trap的ip打上你的zenoss伺服器/電腦,就完成了.



第三步就是在linux電腦或伺服器裡把snmp.conf的設定改一改.
#vi /etc/snmp/snmpd.cong
在這裡加入最後一行.
# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1

view    systemview    included   .1

第四步驟就是到回去Zenoss web interface裡把這些電腦/伺服器加進去.



加了以後記得在左下方按Model Device,之後你就會看到下圖,網卡,處理器等狀態都會顯現出來.

自訂搜尋

追蹤者

熱門文章

我的網誌清單

網頁