【持續部署】批量部署工具,總結、對比
SaltStack 和 Ansible,對比
1.背景
目前XXXX版本釋出上線,釋出操作特點:
1.需要登入到業務涉及到的每臺機器;
2.重複在每臺機器執行操作(拷貝總包、解壓縮、執行升級命令、確認升級是否成功)
3.耗時
4.消耗釋出人員的精力
5.效率低
6.易出錯(如需人工對比是否是最新包)
2.目的
參考運維部部署工具,優化解決以上問題,減少人工執行的步驟。
使用工具,提高效率,拒絕人工手動操作。
3.工具選型標準
低侵入
易維護
易擴充套件
易使用
4.線上部署ansible
3.1 部署操作
3.1.1 配置中控機與其他機器免金鑰操作
步驟1. 選擇一臺機器 node_master 作為中控機
執行以下命令,生成金鑰對
ssh-keygen -t rsa
cd /root/.ssh
cp id_rsa.pub authorized_keys
步驟2. 在所有非中控機執行
ssh-keygen -t rsa
ssh-copy-id -i node_master
步驟3. 分發公鑰,中控機上執行
scp authorized_keys node_1:/root/.ssh/
scp authorized_keys node_2:/root/.ssh/
... ...
scp authorized_keys node_N:/root/.ssh/
3.1.2 安裝ansible
yum install ansible
3.1.3 配置ansible
vim /etc/ansible/hosts
[servers]
10.107.50.104
10.107.50.105
10.107.50.106
3.1.3 部署測試
測試1. 命令列下執行
在中控機node_master上執行
ansible -m command -a "date" 'servers'
測試2. 執行編排好的檔案
批量檢視hostname
輸出結果
5.使用ansible做線上釋出
D:\workspace\python\python_test\ansible_test\saas_deploy\README.md
6.其他
6.1線上部署SaltStack
步驟1. 安裝軟體包
yum install salt-master -y
yum install salt-minion -y
步驟2. 修改配置檔案
/etc/salt/master
#指定執行的主目錄
file_roots:
base:
- /saasdata/yujianxin/ansible_test/saltstack_test
/etc/salt/minion
# 指定master
master: 10.107.50.104
6.2 部署測試
測試1. 命令列下執行
測試2. 執行編排好的檔案
salt 'etcd.saas.services' state.sls log_service
多層級部署
https://docs.saltstack.com/en/master/topics/topology/syndic.html
相關文章
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- Jenkins持續部署-Windows環境持續部署探究1JenkinsWindows
- 持續整合持續部署持續交付_持續整合與持續部署之間的真正區別
- 持續整合、持續交付與持續部署
- 持續整合工具之Jenkins安裝部署Jenkins
- 持續整合、持續部署、持續交付、持續釋出
- 你真的懂持續整合、持續交付、持續部署嗎?!
- 淺談持續整合(CI)、持續交付(CD)、持續部署(CD)
- 3分鐘瞭解清楚持續整合、持續交付、持續部署
- Windows + Jenkins + .NetFramework + SVN 持續部署WindowsJenkinsFramework
- 使用流水線外掛實現持續整合、持續部署
- 私有化輕量級持續整合部署方案--05-持續部署服務-Drone(上)
- 私有化輕量級持續整合部署方案--05-持續部署服務-Drone(下)
- 微服務容器部署與持續整合微服務
- CI/CD 持續整合部署實踐
- [譯] 如何使用 CircleCI for GitHub Pages 持續部署Github
- 持續程式碼質量管理-Sonar部署
- Jenkins持續部署-自動生成版本號Jenkins
- 使用 GitHub 和 Python 實現持續部署GithubPython
- 以 egg.js 為例的持續整合(CI)、持續部署(CD)JS
- Jenkins持續部署-建立差量更新包Jenkins
- 持續整合、持續交付和持續部署有什麼區別?0基礎學習linux技能Linux
- 陣列總結,持續更新~陣列
- 【持續更新】重要FLIP總結
- 前端專案基於GitLab-CI的持續整合/持續部署(CI/CD)前端Gitlab
- SpringBoot+Docker+Git+Jenkins實現簡易的持續整合和持續部署Spring BootDockerGitJenkins
- jenkins+gitlab+docker持續整合部署maven專案JenkinsGitlabDockerMaven
- jenkins+gitlab+nexus持續整合與部署學習JenkinsGitlab
- Web總結:部署和安全Web
- 分散式爬蟲的部署之Scrapyd批量部署分散式爬蟲
- 前端佈局總結(持續更新)前端
- javaScript 習題總結(持續更新)JavaScript
- 私有化輕量級持續整合部署方案--03-部署web服務(下)Web
- 私有化輕量級持續整合部署方案--03-部署web服務(上)Web
- vuepress與travis-cli持續整合自動化部署Vue
- 第2章 實現突破——持續部署、微服務和容器微服務
- 持續整合指南:GitHubAction 自動構建+部署AspNetCore專案GithubNetCore
- 如何利用Gitlab-ci持續部署到遠端機器?Gitlab