滴滴雲安裝並使用 Ansible

2021-09-11 07:40:35 字數 4004 閱讀 1208

本文主要介紹在滴滴雲部署 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 ...