ansible实现运维自动化

前言:

          ansible是新出现的自动化运维工具,基于Python的开发,集合

了众多运维工具(pupper、cfengine、chef、func、fabic)的优点,实现

了批量系统配置,批量程序部署,批量运行命令等功能,ansible是基

于模块工作的,本身没有批量部署的能力,真正具有批量部署能力的

是ansible所运行的模块,ansible只是一种框架。

ansible的特性:

              模块化:调用定义的模块,完成特定任务,有Paramiko.PyYA

MLJinjja2(模版语言)。

               三个关键模块:支持自定义模块,基于Python语言的实现,部

署简单,基于Python和SSH(默认系统已经安装),安全,基于OpenSSH

支持playbook编排任务。

               兼等性:一个任务执行一边和执行n编的结果是一样的,不因重

复执行带来的意外情况,无需代理不依赖PKI(无需ssl),可以使用任何编程

语言写模块,YAML格式,编排任务,支持丰富的数据结构,较强大的多

层次的解决方案。

 

Ansible的架构:

   由以下几个核心组件组成:

            ansible(主体):ansible的核心程序,提供一个命令接口给用户对

ansible进行管理操作,Host inventory(主机清单):为Ansible定义了管理

主机策略,一般小型的环境下我们只需要在hosts文件中写入主机的IP地址

即可,但是到了大中型环境我们有可能需要使用静态的invenrory或者动态

主机清单来生成我们所需要执行的目标主机。

Core Modules(核心模块):Ansible执行命令的功能模块,多为内置的核心

模块,

Custom Module(拓展模块):如何ansible自带的模块无法满足我们的要求,

用户可自定义相应的模块来满足自己的需求。

Connection Plugins(连接插件):模块功能的补充,如连接类型的插件,循环

插件,变量插件,过滤插件等,该功能不太常用。

Playbook(任务剧本):编排自定义ansible任务集的配置文件,有ansbile顺序

执行,通常是JSON格式的*YML文件。

API:支持第三方程序调用的应用程序调用的应用程序编程接口。

ansible工作原理:

    管理端支持local、ssh、zeronq三种连接方式连接被管理端,默认

使用ssh进行连接,这部分对应框架中的连接模块。

   可以按应用类型等方式进行Host inventory(主机群)分类,管理节点通过

各类模块实现相应的操作----->单个模块,单条命令进行批量的执行,我们

可以称之为ad-hoc.

    管理节点可以通过playbooks实现多个task的集合实现这一功能,如web

服务的安装部署,数据库服务器的批量部署备份等,playbooks我们可以简单

的理解为,系统通过组合多条ad-hoc操作的配置文件。

 

正文:

主控制机:   172.25.68.1

远程主机1: 172.25.68.2

远程主机2:  172.25.68.3

 

在控制主机上进行ansible软件的安装:

[root@server1 mnt]# ls
ansible-2.4.2.0-2.el7.noarch.rpm         python-paramiko-2.1.1-4.el7.noarch.rpm
epel-release-7-11.noarch.rpm             python-passlib-1.6.5-2.el7.noarch.rpm
python2-jmespath-0.9.0-3.el7.noarch.rpm  sshpass-1.06-2.el7.x86_64.rpm
python-httplib2-0.9.2-1.el7.noarch.rpm

[root@server1 mnt]# yum install -y *     ###进行软件的安装

 

在主控制机上进行用户的新建和密码的设定(使用ansible用户进行任务的推送)

useradd ansible    ###进行用户的创建
passwd ansible     ###进行用户密码的创建

 

进行用户的切换,在该用户下进行ansible主配置文件的建立和远程主机hosts文件的建立

su - ansible               ###进行用户的切换
mkdir ansible              ###进行主目录的建立
vim   ansible.cfg          ###进行配置文件的编辑(自己进行创建)
vim   hosts                ###进行远程主机请单文件的建立
 

 

配置文件:

 

用户主机请单:

 

 在远程主机上进行ansible用户的建立并进行密码的设定

useradd ansible    ###进行用户的建立
id      ansible    ###进行用户信息的查看
passwd  ansible    ###进行用户密码的设定

          

 

在主控制机上进行免密,并将公钥发送给远程主机

[ansible@server1 ansible]$ ssh-keygen                 ###进行密钥的生成
[ansible@server1 ansible]$ ssh-copy-id server2        ###进行密钥的发送
[ansible@server1 ansible]$ ssh-copy-id server3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值