運維必會:基於 Ansible 的 Docker 自動化部署,小白也能看懂?
Ansible 是一個 Python 寫的自動化工具,這個工具可以實現叢集自動化管理,然後進行一些常用的運維操作。
-
以 Ansible 指令碼為主導而搭建的自動化部署升級平臺
-
以類似 Jenkins 流水線而搭建的自動化構建和部署平臺
-
以 SDK 包為基礎,以 Python 指令碼執行主導的運維平臺
-
Docker 容器+編排
1、安裝ansible
使用pip安裝
sudo pip install ansible
使用yum或者apt-get安裝
ansible 也可以直接使用系統的包管理工具來安裝,比如 CentOS 的 yum 命令:
sudo yum install ansible
Ubuntu 系統的 apt-get 命令:
sudo apt-get install software-properties-common sudo apt-add-repository ppa:ansible/ansible sudo apt-get update sudo apt-get install ansible
2、Ansible基本用法
使用 ansible-playbook
ansible-playbook docker.yml -i hosts -u alex -k -K
# 列出所有模組
ansible-doc -l
# 列出yum模組的使用方式
ansible-doc yum
ansible-playbook 目錄結構
├── group_vars <- 所有主機的公共變數存放位置 │ └── all├── hosts <- 需要管理的主機的列表資訊 ├── roles <- roles 存放模組, 當前有 etcd, initial, loop 三個模組 │ ├── etcd│ │ ├── files <- 需要直接複製到 client 的檔案存放位置 │ │ │ └── etcd-proxy.service <--即每個主機配置一樣 │ │ ├── handlers <- 用於服務管理用的控制檔案 │ │ │ └── main.yml │ │ ├── tasks <- ansible 任務檔案 │ │ │ ├── config.yml │ │ │ ├── main.yml │ │ │ ├── package.yml │ │ │ └── service.yml │ │ └── templates <- 需要複製到 client 中的模板檔案, 會配合變數進行配置變換 │ │ └── etcd-proxy.conf <-- 即每個主機配置可能不一樣 │ ├── initial │ │ ├── files │ │ │ ├── hosts │ │ │ ├── resolv.conf │ │ │ └── updatedb.conf │ │ ├── handlers │ │ ├── tasks │ │ │ ├── main.yml │ │ │ ├── mlocate.yml │ │ │ ├── package.yml │ │ │ ├── sysctl.yml │ │ │ └── yumrepo.yml │ │ └── templates │ │ ├── centos7.repo │ │ └── docker.repo │ └── loop │ ├── files │ ├── handlers │ ├── tasks │ │ ├── main.yml │ │ └── t1.yml │ └── templates└── site.yml <- 主控制入口檔案
ansible 安裝 docker
專案地址:
儘量使用內建模組
# 使用shell 命令列安裝
- name: install yum-utils
shell: yum install yum-utils
# 使用yum 模組安裝
- name: install yum-utils
yum:
name: yum-utils
state: present
還有下面這種直接使用pip模組的:
- name: install docker-compose pip: name: docker-compose extra_args: "-i {{ pip.index_url }} --trusted-host {{ pip.trusted_host }}"
register+when的使用
docker -v
命令查詢 docker 版本,然後第二個步驟判斷當 docker 不可用的時候就執行 docker 安裝。
- name: check docker
shell: docker -v
register: result
ignore_errors: True
- name: include tasks yaml if not docker
include_tasks: install.yml
when: result is failed
執行結果
來源:https://cloud.tencent.com/developer/article/2123531
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70013542/viewspace-3005864/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自動化運維工具Ansible詳細部署運維
- 自動化運維 Ansible運維
- Ansible自動化運維工具運維
- 【小白向】基於Docker使用Gogs,Drone以及drone-runner-docker的自動化部署DockerGo
- ansible自動化運維入門運維
- 乾貨|基於Ansible的Ceph自動化部署解析
- 基於 Nebula Operator 的 K8s 自動化部署運維K8S運維
- 自動化運維工具ansible的實踐運維
- 自動化運維工具Ansible介紹運維
- ansible自動化運維資料庫運維資料庫
- 關於自動化運維的思考-基線運維
- 自動化運維工具——ansible詳解(一)運維
- 自動化運維工具——ansible詳解(二)運維
- 基於Ansible實現Apache Doris快速部署運維指南Apache運維
- Python+Django+Ansible Playbook自動化運維PythonDjango運維
- 自動化運維利器Ansible要點彙總運維
- [Linux]Ansible自動化運維② - 工具與模組Linux運維
- 58 趕集基於 Docker 的自動化部署實踐Docker
- [Linux]Ansible自動化運維① - 入門知識Linux運維
- Ansible 運維自動化 ( 配置管理工具 )運維
- 小白也能看懂的MySQLMySql
- 自動化運維工具SaltStack詳細部署運維
- 簡化IT運維工作,就要學會使用自動化運維工具!運維
- ansible自動化運維詳細教程及playbook詳解運維
- IT運維之自動化運維運維
- 運維自動化工具Ansible的簡單介紹運維
- Ansible自動部署工具
- 獨闢蹊徑:基於產品思維驅動運維自動化建設運維
- Python+Django+ansible playbook自動化運維專案實戰PythonDjango運維
- 運維自動化之基於python語言的文字介面的運維管理軟體薦運維Python
- 自動化運維 Expect運維
- 用自動化運維工具解放IT運維運維
- IT運維技能必知必會!運維
- promise初體驗,小白也能看懂Promise
- Docker 之 Jenkins自動化部署DockerJenkins
- 使用 Jenkins + Ansible 實現自動化部署 NginxJenkinsNginx
- 自動化運維工具之Puppet基礎入門運維
- 如何高效地遠端部署?自動化運維利器 Fabric 教程運維