滴滴云安装并使用 Ansible

一、概述

本文主要介绍在滴滴云部署 Ansible,以及通过 2 台服务器演示通过 Ansible 安装 Nginx 服务的过程。

二、什么是 Ansible

Ansible 是一款开源的 IT 配置管理、服务部署与编排工具。官方的解释是 “Ansible is Simple IT Automation”——简单的自动化 IT 工具。

该工具的目标有以下几项:

  • 自动化部署 APP
  • 自动化管理配置项
  • 自动化的持续交付
  • 自动化的云服务管理

完成以上的目标只需要在管理节点执行一系列的命令即可。

三、为什么需要 Ansible

当只有一台服务器时,我们可以通过命令,或者编写简单的脚本来配置服务,更新配置。但如果是 10 台,100 台乃至更多的机器时,我们如何高效、准确的配置不同的服务?

这时候,我们就需要找到能够实现大批量机器并发操作,且支持自动化配置的工具,这就是 Ansible 的最主要功能。

目前与 Ansible 类似的工具有:SaltstackPuppet

四、Ansible 架构图

Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接,无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。

五、安装 Ansible

5.1 示例环境

主机名ip
master10.0.8.84
web0110.0.8.67

5.2 安装

只需要在 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]

5.3 配置

主配置文件:/etc/ansible/ansible.cfg

用户也可以自定义配置文件,配置文件的优先级:

  • ANSIBLE_CONFIG ( 环境变量 )
  • ansible.cfg ( 当前目录下 )
  • .ansible.cfg ( 用户家目录下 )
  • /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 文件中,并修改权限

六、通过 Ansible 管理与配置主机

6.1 执行命令

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)

6.2 安装并配置 Nginx

新建一个 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

七、参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值