阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

自动化运维工具之 Ansible 介绍及安装使用

424次阅读
没有评论

共计 4107 个字符,预计需要花费 11 分钟才能阅读完成。

一、初识 Ansible 

介绍:

Ansible 使用  模块(Modules) 来定义配置任务。模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等。Ansible 剧本(YAML 语言编写)角色映射到 节点 / 虚拟机上,以对这些节点 / 虚拟机 进行编排有序的执行。Ansible 支持 ad-hoc 任务:管理任务(不必幂等)以在多个节点 / 虚拟机上执行。Ansible 具有无代理架构:你不需要在配置的节点 / 虚拟机上安装 Ansible(然而,这些节点必须安装 python 环境),Ansible 通过 SSH 或者通过 PowerShell(Windows 机器)从单个控制机器上配置管理节点 / 虚拟机,并且能够支持并行配置多个节点。Ansible 可以用来配置 类 unix 系统或 Windows 节点 / 虚拟机。

基本特点:

  • 安装部署简单,支持多种方式安装(yum,git 等)
  • 支持分类过滤管理主机
  • 轻量级,被管理端无需安装特定 agent(需有 python、ssh 环境)
  • 模块众多,可以满足我们的需要
  • 开发社区活跃
  • Ansible playbook 剧本
  • 支持各种公有云、私有云平台
  • 基于 Push 推送方式,可以随时修改
  • 幂等性(已经存在的修改后的状态,再次执行这个任务时,不会进行任何修改)

如图:

自动化运维工具之 Ansible 介绍及安装使用

注:上图是从官方介绍视频中的截图。用户通过 ansible 自动化引擎,使用 playbook,插件、模块去去管理被控制主机。并可以结合 CMDB 管理系统。

二、Ansible 运行环境

1.ansible 的安装支持多种方式。

官方建议:

  • 如果你想在 Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian, or Ubuntu 上,运行最新版本的 Ansible 版本,推荐使用包管理器,如 yum,apt-get.
  • 对于其它安装选项,推荐使用 pip 包管理器进行安装
  • 如果想要使用最新的功能可以跟踪开发版本,从 github 上进行 git 到本地,进行使用

2. 控制机要求:

Ansible 可以运行在有 python 2.6 或者 2。7 环境的类 unix 环境。windows 暂不支持

3. 被控制节点要求

控制节点需要和 Ansible 被控制节点通信,通常使用 ssh 进行连接。另外也需要 python 环境。

三、Ansible 安装

1. 控制管理机安装(安装方式有多种,源码,pip 等方式),我们这里使用 git 源码安装方式进行部署

[root@docker ~]# git clone git://github.com/ansible/ansible.git --recursive
[root@docker ~]# cd ansible/

进行源码安装

[root@docker ansible]# make && make install

先安装 pip 包管理工具,然后安装 ansible 程序所使用的几个 python 模块

[root@docker ansible]# easy_install pip
[root@docker ansible]# pip install paramiko PyYAML Jinja2 httplib2 six

更新 ansible 代码时用到的两条命令

[root@docker ansible]# git pull --rebase
Current branch devel is up to date.
[root@docker ansible]# git submodule update --init --recursive

2. 检查验证

[root@docker ansible]# ansible --version
ansible 2.3.0
  config file =
  configured module search path = Default w/o overrides

三、配置 Ansible 尝试下管理主机

1. 默认配置文件在你 git 下载源码的目录 ansible 目录中

/root/ansible/bin/ansible

2. 创建 hosts 存放目录,并编写 hosts 文件

[root@docker ansible]# mkdir -pv /etc/ansible/
mkdir: created directory '/etc/ansible/'

从安装文件中,拷贝 hosts

[root@docker ansible]# cp /root/ansible/examples/hosts /etc/ansible/.

编写 hosts 文件,添加 1 个主机

3. 创建俩 docker 容器吧

[root@docker ~]# docker run -d -it --name centos-1 centos_sshd_1
b032a6c8b4014837181029059661104373db8a6190a1f854ae5ff701b961a546
[root@docker
~]# docker run -d -it --name centos-2 centos_sshd_1 cc647f916437df70b54096bcf676804114d1558124234b7716aee68271414f27

容器创建完,默认已经启动了 sshd 服务开启 22 端口(这里可以查看后续我发的 Docker 自定义镜像的文章),我们查看下它们的 ip

[root@docker ~]# docker exec centos-1 hostname -I
172.17.0.2 
[root@docker ~]# docker exec centos-2 hostname -I
172.17.0.3

4. 将上面 2 个被控制主机的 ip 添加到 hosts 文件中,并进行通信测试

打开 /etc/ansible/hosts 文件,在末尾按照以下格式添加。

[cenots_group]
172.17.0.2
172.17.0.3

添加完成后,在控制主机上使用 ping 模块进行测试,如下:(约定:被控主机称为 client,控制主机称为 managent,以下类似)

所有主机:

[root@docker ~]# ansible '*' -m ping --ask-pass
SSH password: 
172.17.0.3 | SUCCESS => {"changed": false, 
    "ping": "pong"
}
172.17.0.2 | SUCCESS => {"changed": false, 
    "ping": "pong"
}

指定组的方式:

[root@docker ~]# ansible centos_group -m ping --ask-pass
SSH password: 
172.17.0.2 | SUCCESS => {"changed": false, 
    "ping": "pong"
}
172.17.0.3 | SUCCESS => {"changed": false, 
    "ping": "pong"
}

指定单个主机的方式:

[root@docker ~]# ansible '172.17.0.3' -m ping --ask-pass
SSH password: 
172.17.0.3 | SUCCESS => {"changed": false, 
    "ping": "pong"
}

解释:ansible 命令后面,跟的第一个参数,也就是我们 hosts 文件里面的主机清单(可以指定单个主机 ip,也可以是组,也支持正则匹配);第二个参数是使用 -m 指定模块,这里我们用了 ping 模块。–ask-pass 这个是当我们使用主机密码来进行 ssh 认证时的参数,多次输入后,会感觉比较麻烦。推荐使用密钥的方式,安全又方便。下面说下如何用公钥

5. 使用密钥来进行 ssh 远程访问

先在 management 上生成公钥私钥对

[root@docker ~]# ssh-keygen -t rsa -C "management"

将公钥放到使用 ssh-copy-id 命令,上传到 client 上面去。

[root@docker ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.17.0.2

[root@docker ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.17.0.3

现在再试下管理命令,不用输入密码了

[root@docker ~]# ansible centos_group -a "/bin/echo Hello world"
172.17.0.3 | SUCCESS | rc=0 >>
Hello world

172.17.0.2 | SUCCESS | rc=0 >>
Hello world

 ok,等下一次学习 Inventory(资源清单)时,再来分享吧。

注:ansible 是第二次开始写的连载系列文章,如果喜欢可以关注哦。如果感觉有不好的地方,一定要不吝赐教哈。我会非常非常感激的。另外,如果你觉得本文对你有帮助,欢迎转载,但务必要注明出处啊。

使用 Ansible 高效交付 Docker 容器  http://www.linuxidc.com/Linux/2015-10/124233.htm

使用 Ansible 批量管理远程服务器  http://www.linuxidc.com/Linux/2015-05/118080.htm

Ansible 安装配置与简单使用  http://www.linuxidc.com/Linux/2015-07/120399.htm

在 CentOS 7 中安装并使用自动化工具 Ansible  http://www.linuxidc.com/Linux/2015-10/123801.htm

Ansible 和 Docker 的作用和用法  http://www.linuxidc.com/Linux/2014-11/109783.htm

Ansible 批量搭建 LAMP 环境 http://www.linuxidc.com/Linux/2014-10/108264.htm

Ansible:一个配置管理和 IT 自动化工具  http://www.linuxidc.com/Linux/2014-11/109365.htm

Ansible 的详细介绍 :请点这里
Ansible 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/138104.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4107字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19355
评论数
4
阅读量
8258862
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
云服务器部署OpenClaw:轻量应用服务器+钉钉和QQ机器人

云服务器部署OpenClaw:轻量应用服务器+钉钉和QQ机器人

  云服务器部署 OpenClaw:轻量应用服务器 + 钉钉和 QQ 机器人 一、前言 最近开源圈爆...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...