星期四, 12月 24, 2015

openSUSE Leap 42.1 安裝小記

openSUSE Leap 42.1 安裝小記


這次使用 openSUSE Leap 42.1  64位元版本


取消 CD 為安裝來源:
# yast2  repositories


Google Chrome:


Freemind:


將.mm 的檔案指定用 freemind  開啟


新增 Packman 套件庫


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


#yast2  repositories


URL 為

Firefox download helper:



flash-player:
# zypper   install   flash-player

Mplayer:


就使用 zypper 指令安裝 Mplayer 以及 smplayer 套件
#zypper  -n  install    -l   MPlayer   smplayer   smplayer-lang


這邊跟以前比較不一樣的是, 非互動的方式目前參數調整為 -n
Warning: Legacy command line option -y/--no-confirm detected. Please use -n/--non-interactive instead.


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


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:



安裝 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 移除



以下為個人記事


  • Forticlient SSL VPN 安裝
    • Dropbox 內2014的 source code
    • # zypper install libgthread-2_0-0-32bit
  • 印表機安裝
    • # yast2  printer
  • rdesktop 安裝與測試 -g 1280x1024

星期二, 11月 24, 2015

Ansible 小記 - shell module 與 apt module

Ansible 小記 - shell module 與 apt module

Ansible 的 Module 可以在官網找到所有的 Module, 這邊是按照分類的 Index http://docs.ansible.com/ansible/modules_by_category.html

今天先來介紹兩個 module - shell 與 apt

首先是 shell module

shell

shell module 跟 command module 的差別就是可以處理 pipe 之類的做法
可以把在系統習慣的執行方式透過 shell module 來執行

指令的做法
$ ansible  cenic_master -m shell   -a   'dpkg -l  |  grep ftp'
cenic_master | success | rc=0 >>
ii  ftp                                 0.17-28                             amd64        classical file transfer client

範例
ansible-playbook 方式

建立一個 yml 檔案
$ vi  test_shell_module.yml

- name: Test shell module
 hosts: cenic_master
 tasks:
   - name: Test shell module
     shell: dpkg -l | grep ftp
     register: dpkg
   - debug: var=dpkg.stdout_lines
以 ansible-playbook 指令執行
$ ansible-playbook test_shell_module.yml

PLAY [Test shell module] ******************************************************

GATHERING FACTS ***************************************************************
ok: [cenic_master]

TASK: [Test shell module] *****************************************************
changed: [cenic_master]

TASK: [debug var=dpkg.stdout_lines] *******************************************
ok: [cenic_master] => {
   "var": {
       "dpkg.stdout_lines": [
           "ii  ftp                                 0.17-28                             amd64        classical file transfer client",
           "ii  lftp                                4.4.13-1                            amd64        Sophisticated command-line FTP/HTTP client programs",
           "ii  openssh-sftp-server                 1:6.6p1-2ubuntu2                    amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines"
       ]
   }
}

PLAY RECAP ********************************************************************
cenic_master               : ok=3    changed=1    unreachable=0    failed=0   

另外一個 module 就是 apt

apt

指令的方式
例如 安裝 telnetd 套件
$ ansible cenic_master  -s   -m  apt  -a ' name=telnetd update_cache=yes '

這邊要注意兩件事情
  • -s 代表 sudo , 因為要更新套件庫還有安裝, 所以需要 sudo
  • apt 通常要搭配 update_cache=yes, 來更新, 以免套件安裝有問題


範例
ansible-playbook 方式

建立一個 yml 檔案, 這邊我們透過 with_item 的方式一次安裝多個套件
$ vi  test_apt_module.yml

- name: Using Iteration (with_item) to install multiple packages
 hosts: cenic_master
#  sudo: True 這邊學到 sudo 不一定要放在一般選項內, 也可以放在 task 內
 tasks:
   - name: install apt packages
# 於 apt moudule 使用 sudo
     sudo: True
# 使用 pkg 加上 {{ item }} 配合後面的 with_item 來安裝多個套件
     apt: pkg={{ item }} update_cache=yes cache_valid_time=3600
# 配合前面的 {{ item }} 來安裝多套件
     with_items:
       - openjdk-7-jdk
       - wget
       - scala

以 ansible-playbook 指令執行

$ ansible-playbook  test_apt_module.yml

PLAY [Using Iteration (with_item) to install multiple packages] ***************

GATHERING FACTS ***************************************************************
ok: [cenic_master]

TASK: [install apt packages] **************************************************
changed: [cenic_master] => (item=openjdk-7-jdk,wget,scala)

PLAY RECAP ********************************************************************
cenic_master               : ok=2    changed=1    unreachable=0    failed=0   



okay, 今天先到這邊
~ enjoy it

星期一, 11月 16, 2015

Ansible 小記 - ping module 與 command module

Ansible 小記 - ping module 與 command module

接下來就開始介紹 Ansible Module

Ansible 的 Module 可以在官網找到所有的 Module, 這邊是按照分類的 Index http://docs.ansible.com/ansible/modules_by_category.html

今天先來介紹兩個 module

首先是 ping module
ping

這大概是我在使用 Ansible 第一個會執行的 module, 測試與遠端主機是否有連線成功

使用 ansible 的指令語法就是
ansible  對象  -m  module名稱
  • -m 是 moudle 的意思

範例為對所有的主機執行 ping module, 成功就會回覆 pong
$ ansible  all   -m   ping
cenic_slave | success >> {
   "changed": false,
   "ping": "pong"
}


接下來介紹  command module
command module 適合執行單一指令, 沒有做其他處理的狀況

command
  • 執行 command, 但是如果是會用到 pipe | 這樣的方式就要透過 shell module 來執行
    • 例如
      • ansible  testserver  -m command  -a  'uptime'
    • 但是如果要執行指令進行二次處理
      • ansible  testserver  -m  command  -a  'dpkg -l | grep nginx'   這樣是不行的, 要使用 shell module

範例
ansible 指令方式

ansible  對象  -m  module名稱  -a  “參數
  • -m 是 module 的意思
  • -a  是 module arguments

所以這邊對機器執行 command module 去執行 uptime 指令
$ ansible  cenic_master   -m   command   -a   'uptime'
cenic_master | success | rc=0 >>
06:38:13 up 20 days,  2:08,  2 users,  load average: 0.00, 0.01, 0.05

範例
ansible-playbook 方式

建立一個 yml 檔案, debug 的部分日後再講
$ vi  4_output_of_command.yml
- name: show return value of command module
 hosts: testserver
 tasks:
   - name: capture output of id command
     command: id -un
     register: login
# 使用 變數 {{ xxx.stdout }} 將輸入導到螢幕前
# - debug 後面的 msg 也是有規定名稱, 不能用自定命名
   - debug: msg="Logged in as user {{ login.stdout }}"

使用 ansible-playbook 指令執行

使用 ansible 的指令語法就是

ansible-playbook  指定的yml檔案

$ ansible-playbook  4_output_of_command.yml

PLAY [show return value of command module] ************************************

GATHERING FACTS ***************************************************************
ok: [cenic_master]

TASK: [capture output of id command] ******************************************
changed: [cenic_master]

TASK: [debug msg="Logged in as user {{ login.stdout }}"] **********************
ok: [cenic_master] => {
   "msg": "Logged in as user maxhuang"
}

PLAY RECAP ********************************************************************
cenic_master               : ok=3    changed=1    unreachable=0    failed=0   

okay, 今天先到這邊

~ enjoy it