文档章节

Ansible 基础入门及安装

P
 PeakFang-BOK
发布于 2018/11/18 18:37
字数 1252
阅读 54
收藏 2

Ansible :一个配置管理和IT自动化工具
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
ansible 的特点就在于它的简洁。让 ansible 在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件。同时提供的一个优点在于,如果需要的话,你可以在不止一个地方控制你的整个基础架构。最后一点是它的正确性,或许这里有些争议,但是我认为在大多数时候这仍然可以作为它的一个优点。
Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。
1.Ansible优点:
Agentless,去中心化
Stupied Simple ,上手简单,学习曲线平滑
SSH by default ,安全,无需安装客户端
配置简单、功能强大、扩展性强
支持API及自定义模块,可通过Python轻松扩展
通过Playbooks来定制强大的配置、状态管理
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台
幂等性:一种操作重复多次结果相同

Ansible核心组件说明:
Ansible:Ansible的核心程序
Host Inventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
Core Modules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Inventory中的主机,就可以完成管理主机。
Custom Modules:自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。
Connection Plugins:连接插件,Ansible和Host通信使用

playbooks 是 Ansible的配置,部署,编排语言.他们可以被描述为一个需要希望远程主机执行命令的方案,或者一组IT程序运行的命令集合. 如果 Ansible 模块你是工作室中的工具,那么 playbooks 就是你设置的方案计划. 在基础层面, playbooks 可以被用来管理用于部署到远程主机的配置文件.在更高的层面上,playbooks 可以依次对多层式架构上的服务器执行上线包括滚动更新在内的操作并可以将操作委托给其他主机包括在此过程中发生的与监视服务器,负载均衡服务器的交互操作在内.

1、检查python版本

2、启动运行
从源码运行ansible
[root@server01 ansible]# source ./hacking/env-setup
running egg_info
creating lib/ansible.egg-info
writing requirements to lib/ansible.egg-info/requires.txt
writing lib/ansible.egg-info/PKG-INFO
writing top-level names to lib/ansible.egg-info/top_level.txt
writing dependency_links to lib/ansible.egg-info/dependency_links.txt
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'hacking'
warning: no files found matching 'SYMLINK_CACHE.json'
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'

Setting up Ansible to run out of checkout...

PATH=/usr/local/ansible/bin:/usr/local/ansible/test/runner:/usr/local/erlang/bin:/usr/local/jdk1.8.0_66/bin:/usr/local/jdk1.8.0_66/bin:/usr/local/jdk1.8.0_66/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/erlang/bin:/root/bin
PYTHONPATH=/usr/local/ansible/lib:
MANPATH=/usr/local/ansible/docs/man:

Remember, you may wish to specify your host file with -i

Done!

3、创建配置远程服务器信息列表
[root@server01 ansible]# cat /etc/ansible/hosts
[webservices]
192.168.42.102

4、测试运行
[root@server01 ansible]# ansible all -m ping
192.168.42.102 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[root@server01 ansible]# ansible all -a "/bin/echo hello"
192.168.42.102 | SUCCESS | rc=0 >>
hello

 

© 著作权归作者所有

P
粉丝 7
博文 134
码字总数 336718
作品 0
西安
架构师
私信 提问
加载中

评论(1)

SVD
SVD
ansible
《Linux云计算从入门到精通》系列实战笔记全放送

为了方便Linux云计算爱好者的学习查看,马哥Linx云计算团队特别整理了《Linux云计算从入门到精通》年度重磅大放送,囊括了整个学习过程的学习精华,内容全部由马哥Linux云计算学员撰写,欢迎...

898009427
2017/11/21
0
0
Ansible 简单入门

安装: 先安装EPEL源 yum install ansible -y Ansible配置和测试 第一步是修改主机与配置组,文件位置 /etc/ansible/hosts, 格式是ini,添加两台主机IP 同时定义两个IP到webserver组 内容如下:...

flyingzf
2016/07/22
0
0
自动化运维工具(ansible入门教程)

Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt。这是一款很简单也很容易入门的部署工具,它使用SSH连接到服务器并运行配置好的任务,服务器上不用安装任何多余的软件,只需要开...

数据架构师
02/11
0
0
Ansible介绍、安装、远程执行命令、拷贝文件或者目录、远程执行脚本

Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,centos上可直...

jiekegz
2018/07/09
0
0
如何设计 Ansible 的入门工作坊

本月在公司内部做了一次 Ansible 的入门工作坊。本文即对这次工作坊的设计过程进行一次总结。其他技术类的工作坊也可以参考。 设计过程大概过程如下文所述。 首先,我们需要确定参加本次工作...

翟志军
07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

移动深度学习:人工智能的深水区

人工智能技术经历6年的快速发展,重新定义了很多行业的用户体验,而这仅是开始。 随着5G商用大规模落地,以及智能手机硬件性能越来越强、AIoT设备的快速普及,基于云-边缘-端算法和算力结构的...

博文视点Bv
25分钟前
2
0
vim 分屏 操作

$vim -On file file2 #大写O垂直分屏打开文件 $vim -on file file2 #小写水平打开 # n 表示分屏数,直接n等于文件个数 如果n小于文件,按顺序打开前面的n个,如果大于,打开空编辑页面 分屏快...

突突突酱
27分钟前
3
0
MySQL/Mariadb设置中文字符集(linux)

编辑/etc/my.cnf,添加以下设置 [mysql]default-character-set=utf8[mysqld]character_set_server=utf8[mysqld.safe]default-character-set=utf8[client]default-chara...

编程老陆
30分钟前
3
0
关于linux常用的挂载命令

挂载:就把一块磁盘(可以是光盘,U盘)绑定到一个空目录下面 一般情况下会挂载到mnt目录下面 挂载光盘(把光盘挂载到/mnt/cdrom这个目录中) mount -t iso9660 /dev/cdrom /mnt/cdrom 退出当前目录...

chenhongjiang
31分钟前
3
0
如何分享brain内容外部共享?几个需要知道的TheBrain问答

TheBrain(点击下载)是一款与众不同的思维导图软件,其所有信息通过一个又一个的节点进行联系,最终形成一个杂而不乱的网状结构。从头开始设计,让您捕获您的想法和信息在一个网络的联想,匹...

mnrssj
31分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部