ansible-semaphore
Semaphore 基本的相關依賴條件如下
- MySQL >= 5.6.4/MariaDB >= 5.3
- ansible in $PATH
- git >= 2.x in $PATH
## 安裝最新版本 Git
yum install autoconf libcurl-devel expat-devel gcc gettext-devel kernel-headers openssl-devel perl-devel zlib-devel -y
wget https://github.com/git/git/archive/v2.13.2.tar.gz
tar -zxvf v2.13.2.tar.gz
cd git-2.13.2
make clean
make config
./configure --prefix=/usr
make install
[root@ansilbe ~]# git --version
git version 2.13.2
## 安裝MySQL5.7
## 安裝 Semaphore
## 依照環境需求設置
Firewall 記得開通
預設 Semaphore 預設使用 port 3000 , http://yourserverip:3000/ 訪問 ,
簡潔的登入畫面 , 輸入剛剛初始化預設的帳密
Semaphore需注意的幾點事情
* Inventory 在 semaphore 介面上輸入編輯存到 DB
* Playbook 須指定放到git倉庫
* 每次執行TASK Semaphore 會去git clone 指定目錄的 playbook 到本地執行
建立一個 project , 設定相關內容
設定 Playbook Environment , 因為公司政策原因,署環境沒使用ssh-key登入.
這邊設定使用帳號密碼部署,使用Environment 配合playbooks的 vars_prompt
詳細可以參考 Gitlab issue https://github.com/ansible-semaphore/semaphore/issues/113
Key Store , 設定 Semaphore 去 clone git 倉庫的key , 也可設定相關Ansible 部署Server登入的 ssh-key
Inventory設定
Playbook Repositories 設定存放playbooks的git倉庫路徑,並選擇git clone 的ssh-key
Gitlab 倉庫存放 playbook
Task Templates , 設定執行的Playbook 與相關環境, 注意Playbook 存放的路徑與剛Git倉庫一樣 UAT/frontend_wap.yml
點擊 run 執行 playbook , 成功拉 !!
可以看到 git clone playbook 並且搭配剛剛上面設定的Env & Inventory來執行
Semaphore 2.3.0版本後支援 Email and Telegram Alert , 這邊使用 Telegram, 當task執行失敗後會透過IM發出Alert Message
不專業的介紹就到這裡, 希望提供給有興趣朋友參考. 各位週末愉快
參考資料
Ansible Semaphore - https://techbloc.net/archives/1502
ansible-semaphore github - https://github.com/ansible-semaphore/semaphore
## 安裝 MYSQL 5.7
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum localinstall mysql57-community-release-el7-7.noarch.rpm
yum install mysql-community-server
## 啟動相關 MYSQL 服務
systemctl start mysqld
systemctl enable mysqld
## mysql 5.7 以後已 mysql_install_db 已經不在使用 所以 再啟動時候 LOG 會寫出 預設的密碼
[root@semaphore playbooks]# grep password /var/log/mysqld.log
2017-06-26T02:26:20.357490Z 1 [Note] A temporary password is generated for root@localhost: vO:RkunyM7V>
## 密碼須設定超過 8 包含大小寫 預設的規則
mysql> SET PASSWORD = PASSWORD('123456');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET PASSWORD = PASSWORD("!$@#SDADF546sdfkljlSAD");
## 安裝 Semaphore
curl -L https://github.com/ansible-semaphore/semaphore/releases/download/v2.3.0/semaphore_linux_amd64 /usr/bin/semaphore
chmod 755 /usr/bin/semaphore
semaphore -setup
## 依照環境需求設置
Firewall 記得開通
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
預設 Semaphore 預設使用 port 3000 , http://yourserverip:3000/ 訪問 ,
簡潔的登入畫面 , 輸入剛剛初始化預設的帳密
Semaphore需注意的幾點事情
* Inventory 在 semaphore 介面上輸入編輯存到 DB
* Playbook 須指定放到git倉庫
* 每次執行TASK Semaphore 會去git clone 指定目錄的 playbook 到本地執行
建立一個 project , 設定相關內容
這邊設定使用帳號密碼部署,使用Environment 配合playbooks的 vars_prompt
詳細可以參考 Gitlab issue https://github.com/ansible-semaphore/semaphore/issues/113
Key Store , 設定 Semaphore 去 clone git 倉庫的key , 也可設定相關Ansible 部署Server登入的 ssh-key
Inventory設定
Playbook Repositories 設定存放playbooks的git倉庫路徑,並選擇git clone 的ssh-key
Gitlab 倉庫存放 playbook
點擊 run 執行 playbook , 成功拉 !!
可以看到 git clone playbook 並且搭配剛剛上面設定的Env & Inventory來執行
Semaphore 2.3.0版本後支援 Email and Telegram Alert , 這邊使用 Telegram, 當task執行失敗後會透過IM發出Alert Message
不專業的介紹就到這裡, 希望提供給有興趣朋友參考. 各位週末愉快
參考資料
Ansible Semaphore - https://techbloc.net/archives/1502
ansible-semaphore github - https://github.com/ansible-semaphore/semaphore
留言
張貼留言