本文主要介紹在滴滴雲部署 ansible,以及通過 2 臺伺服器演示通過 ansible 安裝 nginx 服務的過程。
ansible 是一款開源的 it 配置管理、服務部署與編排工具。官方的解釋是 「ansible is ****** it automation」——簡單的自動化 it 工具。
該工具的目標有以下幾項:
自動化管理配置項
自動化的持續交付
自動化的雲服務管理
完成以上的目標只需要在管理節點執行一系列的命令即可。
當只有一台伺服器時,我們可以通過命令,或者編寫簡單的指令碼來配置服務,更新配置。但如果是 10 臺,100 臺乃至更多的機器時,我們如何高效、準確的配置不同的服務?
這時候,我們就需要找到能夠實現大批量機器併發操作,且支援自動化配置的工具,這就是 ansible 的最主要功能。
目前與 ansible 類似的工具有:saltstack、puppet
ansible 是乙個模型驅動的配置管理器,支援多節點發布、遠端任務執行。預設使用 ssh 進行遠端連線,無需在被管理節點上安裝附加軟體,可使用各種程式語言進行擴充套件。
主機名ip
master
10.0.8.84
web01
10.0.8.67
只需要在 master 主機安裝即可。
ubuntu 16.04
# 更新包元資料
sudo
apt-get update
# 安裝倉庫管理工具
sudo
apt-get
install software-properties-common
# 配置ansible倉庫
sudo apt-add-repository --yes --update ppa:ansible/ansible
# 安裝ansible
sudo
apt-get
install ansible
# 安裝完成後檢視版本資訊
ansible --version
-----------------------------
ansible 2.7.7
config file
= /etc/ansible/ansible.cfg
configured module search path =
[u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'
] ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.12 (default, nov 12 2018, 14:36:49)
[gcc 5.4.0 20160609]
主配置檔案:/etc/ansible/ansible.cfg
使用者也可以自定義配置檔案,配置檔案的優先順序:
主機組配置檔案:/etc/ansible/hosts
vi /etc/ansible/hosts
[master]
10.0.8.84
[web]
10.0.8.67
配置 ssh 免密登入:
# 生成鑰匙對(master執行)
sudo ssh-keygen
# 配置免密登入
# 本機
sudo
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
sudo
chmod 400 /root/.ssh/authorized_keys
# web01
# 將/root/.ssh/id_rsa.pub 的內容複製到 web01機器的 /root/.ssh/authorized_keys 檔案中,並修改許可權
sudo ansible all -a who
10.0.8.84 | changed | rc=0 >>
dc2-user pts/0 2019-02-22 09:08 (111.202.166.3)
dc2-user pts/1 2019-02-22 10:18 (111.202.166.3)
root pts/3 2019-02-22 10:25 (10.0.8.84)
10.0.8.67 | changed | rc=0 >>
root pts/0 2019-02-22 10:25 (10.0.8.84)
sudo ansible web -a who
10.0.8.67 | changed | rc=0 >>
root pts/0 2019-02-22 10:25 (10.0.8.84)
新建乙個 playbook:
vi nginx.yml
----
hosts
: web
tasks:-
name
: install nginx
yum:name
: nginx
state
: latest
-name
: ensure nginx is running
service
:name
: nginx
state
: started
執行 playbook:
# 檢查playbook檔案
sudo ansible-playbook -c nginx.yml
play [web] *******************************************
task [gathering facts] *******************************
ok: [10.0.8.67]
task [install nginx] *********************************
changed: [10.0.8.67]
play recap *******************************************
10.0.8.67 : ok=2 changed=1 unreachable=0 failed=0
# 執行playbook
sudo ansible-playbook nginx.yml
play [web] *********************************
task [gathering facts] *********************
ok: [10.0.8.67]
task [install nginx] ***********************
changed: [10.0.8.67]
play recap *********************************
10.0.8.67 : ok=2 changed=1 unreachable=0 failed=0
雲安裝mysql 滴滴雲安裝mysql資料庫
沒什麼好說的,直接正面剛吧。安裝mysql資料庫 b 安裝mysql源 yum localinstall mysql57 community release el7 8.noarch.rpm 若結尾出現complete 則說明mysql源安裝完成 c 檢測是否安裝完成 yum repolist en...
滴滴用的是MySQL 滴滴雲安裝mysql資料庫
沒什麼好說的,直接正面剛吧。安裝mysql資料庫 b 安裝mysql源 yum localinstall mysql57 community release el7 8.noarch.rpm 若結尾出現complete 則說明mysql源安裝完成 c 檢測是否安裝完成 yum repolist en...
ansible 安裝和使用
1 安裝 yum install epel release y yum install ansible y 2 ansible 配置檔案 ansible 配置檔案 etc ansible ansible.cfg 一般保持預設 defaults inventory etc ansible hosts ...