Ansible

解決問題 Ansible (3)

教學目標

主要解決如何進行 Ansible 工具遠端部署驗證與測試的問題。

重點概念

我們只需要透過簡單三步驟,就能夠完成 Ansible 工具遠端部署驗證與測試。

新增遠端部署主機清單

1
2
$ sudo mkdir /etc/ansible
$ sudo vi /etc/ansible/hosts
1
2
3
4
5
6
[server1]
192.168.0.1
[server2]
192.168.0.2
[server3]
192.168.0.3

取得遠端部署主機的詳細資訊

1
$ ansible -i /etc/ansible/hosts all -m setup

測試遠端部署主機執行特定指令

1
$ ansible -i /etc/ansible/hosts all -m raw -a "who"

總結透過簡單三步驟,就能夠完成 Ansible 工具遠端部署驗證與測試,下一步我們將會透過 Playbook 進行 Ansible 遠端部署的應用。

相關資源

解決問題 Ansible (2)

教學目標

主要解決如何設定無須密碼進行 SSH 連線登入,以利使用 Ansible 工具進行遠端部署的問題。

重點概念

我們只需要透過簡單三步驟,就能夠無須密碼進行 SSH 連線登入,以利使用 Ansible 工具進行遠端部署。

新增遠端部署主機清單

1
$ sudo vi /etc/ssh_hosts
1
2
3
192.168.0.1
192.168.0.2
192.168.0.3

建立無須密碼的授權金鑰

1
2
$ ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

複製授權金鑰至遠端部署主機中

1
$ for hst in `cat /etc/ssh_hosts`; do scp -r ~/.ssh/ $hst:~;  done;

總結透過簡單三步驟,就能夠無須密碼進行 SSH 連線登入,以利使用 Ansible 工具進行遠端部署,下一步我們將會進行 Ansible 遠端部署驗證與測試。

相關資源

解決問題 Ansible (1)

教學目標

主要解決在 Red Hat Enterprise Linux 7 的作業系統環境安裝 Ansible 工具的問題。

重點概念

我們只需要透過簡單三步驟,就能夠在 Red Hat Enterprise Linux 7 的作業系統環境安裝 Ansible 工具進行多台機器自動化部署,主要有兩種方式。

方式一

安裝 Virtualenv 套件

首先透過 Virtualenv 套件建立虛擬且獨立 Python 環境,主要可以讓我們在沒有權限的情況下安裝新套件,不同專案可以使用不同版本的相同套件和套件版本升級時不會影響其他專案。

1
2
3
4
5
6
7
8
$ sudo yum install -y epel-release 
$ sudo yum install -y gcc automake
$ sudo yum install -y openssl-devel python-devel libffi-devel
$ sudo yum install -y python-crypto python-paramiko python-keyczar python-setuptools python-pip python-six python-pip
$ sudo yum install -y python-virtualenv
$ mkdir work && cd work
$ virtualenv deployment
$ source deployment/bin/activate

安裝 Ansible 工具

接著在虛擬且獨立 Python 環境中安裝 Ansible 工具。

1
$ pip install ansible==2.2.1

測試 Ansible 工具

最後當 Ansible 工具安裝完成之後,請進行測試。

1
2
$ ansible --version
$ ansible localhost -m ping

方式二

安裝 Yum 套件

若是我們不習慣使用 Virtualenv 獨立環境使用 Python 則可以透過 Yum 套件安裝安裝 Ansible 工具,首先安裝 Yum 套件相關的前置作業。

1
2
3
$ wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
$ rpm -ivh epel-release-7-10.noarch.rpm
$ yum install epel-release

安裝 Ansible 工具

接著透過 Yum 套件安裝 Ansible 工具。

1
$ yum install ansible

測試 Ansible 工具

最後當 Ansible 工具安裝完成之後,請進行測試。

1
2
$ ansible --version
$ ansible localhost -m ping

總結不論透過哪種方式皆是簡單三步驟就能夠在 Red Hat Enterprise Linux 7 的作業系統環境安裝 Ansible 工具進行多台機器自動化部署,下一步我們將會透過 Playbook 進行自動化部署之前必須先確認 SSH 連線登入是否設定正確。

相關資源

SAS 系統管理 (12)

教學目標

初步了解 SAS 軟體部署安裝新方式,目前只適用 Linux 作業系統。

重點概念

目前 SAS 企業商業智慧平台的安裝和設定需求將依賴於多元且廣泛的知識,其中包括安全需求增加、元件數量增加、交付時間縮短和改善品質。當面對快速變更需求的開發者和業務使用者將需要提供客制化的平台,不僅需要符合建立新立新環境的需求之外,更要有能力因應主機應用程式的大小和複雜性進行擴展。

管理者現在已經可以透過工具記錄和重做安裝與設定 SAS 環境,使得人為風險的錯誤降低,同時每次的結果皆能重複使用,但是建立新的 SAS 環境對於使用者來說目前真的是快速的任務與流程嗎?

在我們開始執行 SAS 部署精靈之前,有些項目必須先進行,其中包括伺服器必須先預備、儲存裝置必須被設定、使用者帳號被建立、…等項目。接著有一些重要已經釋出的修補程式需要透過 SAS Depot 進行下載。再來在安裝和設定完成之後,則需要開始設定使用者群組的權限控管和客製化程式開發,最後新系統必須被驗證,我們將其 SAS 部署流程化,則可分為七個階段,分別為:

  1. 系統交付。
  2. 準備。
  3. SAS 安裝。
  4. SAS 設定。
  5. 客制化。
  6. 驗證。
  7. 開始使用。

其中我們透過 SAS 部署精靈只能針對安裝和設定進行自動化,若準備環境正確無誤,且符合限制需求的話則可在幾小時內完成,至於其它階段則是需要數天透過 SAS 部署管理員手動的方式才能夠順利完成,但是當我們要同時部署多個環境,例如開發、整合、使用者驗收測試和正式環境。此時要如何進行改善複雜性、一致性、規範、品質、可重複、設定管理、變更管理和整合流程呢? 將會是一大挑戰。

在許多大型組織中已經有在使用相關自動化工具,但是卻要先安裝代理程式至目標機器中,這將會使得 SAS 部署任務的流程變得更加複雜,特別是在後續安裝的步驟,其中會有許多任務必須相依許多伺服器。通常小團隊將會撰寫腳本語言執行和準備客制化的任務,然而不同技術使用者在不同主機上透過腳本語言進行維護和執行將會是很複雜的題,使得非常不直接進行重構和重用。此時有個工具以 DevOps 基礎非常成功的進行跨服務和應用程式自動化,我們稱這工 具為 Ansible,Ansible 是快速簡單的 IT 自動化引擎,主要進行雲端自動化提供、設定管理、應用程式部署、基礎服務建構、…等 IT 需求,主要被設計於透過描述所有系統之間的 內部關聯進行多層架構的部署,此外它不需要使用代理程式和額外客制安全架構,所以非常輕易進行部署,同時使用 YAML 簡單語言描述自動化工作的方式,其中被使用於建構自動化提供在不同主機進行同步和非同步的處理步驟,被稱為 Playbooks,因此它允許建立小型和重用的元件降低重複性高的冗長工作,並且不需要安裝代理程式,只需要透過 SSH 連線就能夠進行部署。更重要的是 Ansible 為 GPL 授權保證免費使用,並且在 2015 年由 RedHat 收購代表著這工具對於產業非常重要。

假設我們有個特定情境需要部署 SAS 企業商業智慧伺服器,主要必須安裝四個環境,分別為開發、整合、使用者驗收測試和正式,其中包括五個伺服器,分別為 Metadata Server、App Server、SAS Web Infrastructure Data Server、Web Server 和 Web Application Server。此時若我們需要透過 Ansible 中的 Playbooks 進行自動化部署則分為五個階段,分別為:

  1. 準備
  2. SAS 安裝
  3. SAS 設定
  4. 後續設定
  5. 驗證

首先準備階段會先進行預先檢查和通用作業系統套件安裝進行自動化部署,接著 SAS 安裝和設定階段則會依照 Metadata Server、App Server、SAS Web Infrastructure Data Server、Web Server 和 Web Application Server 順序進行自動化部署,再來後續設定階段則先進行中繼資料匯入、單一登入設定、SSL 相關設定、客製化設定、…等進行自動化部署,最後驗證階段類是執行驗證步驟的自動化部署。

總結透過 Ansible 工具理應能夠將一開始七個階段中除了需要甲方配合的系統交付與開始使用之外的五個階段進行自動化部署,使得部署時間縮短至小時為單位,而非人天為單位,同時增加部署的品質和降低人為錯誤,並且部署的結果標準化之外,基礎架構理應會更加穩固。當我們有能力快速部署 SAS 平台,並且預測部署之後的結果,理應就能夠簡化後續的升級和持續整合客戶案例進行實作。

相關資源