一、ansible的作用以及工作结构

1.1、ansible简介:

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

  • 连接插件connection plugins:负责和被监控端实现通信;
  • host inventory:指定操作的主机,是一个配置文件,里面定义监控的主机;
  • 各种模块核心模块、command模块、自定义模块;
  • 借助于插件完成记录日志邮件等功能;
  • playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

1.2、ansible的架构:

连接其他主机默认使用ssh协议!

 

二、ansible基本概念

2.1ansible安装

使用yum源的方式安装ansible,安装ansible需要epel源,我配置了ali的epel源和centos7镜像源,yum配置如下:

# pwd
/etc/yum.repos.d
 
# cat aliBase.repo
[aliBase]
name=aliBase
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=
gpgcheck=
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever
 
# cat aliEpel.repo
[aliEpel]
name=aliEpel
baseurl=https://mirrors.aliyun.com/epel/$releasever\Server/$basearch/
enabled=
gpgcheck=

安装ansible:

$ yum  -y install ansible 

查看生成的主要配置文件:

$ rpm -ql ansible | head 

查看ansible相关信息:
$ yum info ansible
 

2.2 ansible默认配置清单

如果想要通过ansible管理主机,需要将要管理的主机信息添加到ansible的“配置清单”中,在/etc/ansible/hosts文件,在文件最底部添加主机信息;

node11 ansible_host=10.1.1.60 ansible_port= ansible_user=root ansible_ssh_pass=

node11:给主机启一个别名

ansible_host:受控主机ip

ansible_port:ssh链接端口,根据实际端口填写,可不填写

ansible_user:用于链接对应主机的用户名

ansible_ssh_pass:用于链接对应主机的密码

注意:ansible2.0之前的版本,应该写为:

ansible_ssh_host

ansible_ssh_port

ansible_ssh_user

2.2.1清单配置详情:

(1)全部列表

192.168.1.1
192.168.1.2
192.168.2.1
182.168.2.2

# ansible all -m ping

(2)分组列表

[A]
192.168.1.2
192.168.1.3 [B]
192.168.2.1
192.168.2.2

# ansible A -m ping

# ansible B -m ping

(3)连续ip简写

 192.168.1.1

 192.168.1.2

 192.168..[:]    //连续IP简写

(4)域名解析简写

[A]

dnsver-a.com

dnsver-b.com

dnsver-[a:b].com

(5)组内嵌套

[proA]
192.168.1.1
192.168.1.2 [porB]
192.168.2.1
192.168.2.2 [pro:children]
proA
proB

执行pro组时,会将proA、proB组的主机都执行。

2.3设置免密登录

在ansible主机生成秘钥,并进行相应的配置

首先,生成默认格式的密钥对,私钥与公钥:

# ssh-keygen

然后,将生成的公钥加入到受控主机的认证列表

# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.1.1.60

设置免密登录后,配置清单就可以写简写为:

node11 ansible_host=10.1.1.60 ansible_port=

Ansible笔记(1)---基本概念的更多相关文章

  1. ansible笔记(12):handlers的用法

    ansible笔记():handlers的用法 这篇文章会介绍playbook中handlers的用法. 在开始介绍之前,我们先来描述一个工作场景: 当我们修改了某些程序的配置文件以后,有可能需要重启 ...

  2. ansible笔记(3):ansible模块的基本使用

    ansible笔记():ansible模块的基本使用 在前文的基础上,我们已经知道,当我们使用ansible完成实际任务时,需要依靠ansible的各个模块,比如,我们想要去ping某主机,则需要使用 ...

  3. ansible笔记(1)在centos中安装ansible

    ansible笔记():ansible的基本概念 一些基础概念 ansible是什么? 它是一个"配置管理工具",它是一个"自动化运维工具",如果你没有使用过任 ...

  4. ansible笔记(11):初识ansible playbook(二)

    ansible笔记():初识ansible playbook(二) 有前文作为基础,如下示例是非常容易理解的: --- - hosts: test211 remote_user: root tasks ...

  5. ansible笔记(10):初识ansible playbook

    ansible笔记():初识ansible playbook 假设,我们想要在test70主机上安装nginx并启动,我们可以在ansible主机中执行如下3条命令 ansible test70 -m ...

  6. ansible笔记(7):常用模块之系统类模块

    ansible笔记():常用模块之系统类模块 cron模块 cron模块可以帮助我们管理远程主机中的计划任务,功能相当于crontab命令. 在了解cron模块的参数之前,先写出一些计划任务的示例,示 ...

  7. ansible笔记(8):常用模块之系统类模块(二)

    ansible笔记():常用模块之系统类模块(二) user模块 user模块可以帮助我们管理远程主机上的用户,比如创建用户.修改用户.删除用户.为用户创建密钥对等操作. 此处我们介绍一些user模块 ...

  8. ansible笔记(9):常用模块之包管理模块

    ansible笔记():常用模块之包管理模块 yum_repository模块 yum_repository模块可以帮助我们管理远程主机上的yum仓库. 此处我们介绍一些yum_repository模 ...

  9. ansible笔记(6):常用模块之命令类模块

    ansible笔记():常用模块之命令类模块 command模块 command模块可以帮助我们在远程主机上执行命令 注意:使用command模块在远程主机中执行命令时,不会经过远程主机的shell处 ...

  10. ansible笔记(5):常用模块之文件操作(二)

    ansible笔记():常用模块之文件操作(二) 文件操作类模块 find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样. 此处我们介绍一些find模块的常用参数, ...

随机推荐

  1. Hash算法原理以及HashCode深入理解

    Java中的Collection有两类,一类是List,一类是Set.List内的元素是有序的,元素可以重复.Set元素无序,但元素不可重复.要想保证元素不重复,两个元素是否重复应该依据什么来判断呢? ...

  2. Understanding RequireJS for Effective JavaScript Module Loading

    Modular programming is used to break large applications into smaller blocks of manageable code. Modu ...

  3. malloc(50) 内存泄露 内存溢出 memory leak会最终会导致out of memory

    https://en.wikipedia.org/wiki/Memory_leak In computer science, a memory leak is a type of resource l ...

  4. (转)datagridview 自定义列三步走

    本文转载自:http://blog.csdn.net/zx13525079024/article/details/4814642 我们如果想自定义实现datagridview的某列,例如是datagr ...

  5. CTEX WinEdt 改变默认 pdf viewer

    CTEX 2.9.2, WinEdt 7.0 "Options" -> "Excution Modes..." -> "PDF viewe ...

  6. WebSocket知识、轮询、长轮询、长连接

    一.WebSocket理论知识 1.什么是websocket WebSocket是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消 ...

  7. 记2018最后一次问题诊断-Spark on Yarn所有任务运行失败

    2018的最后一个工作日,是在调式和诊断问题的过程中度过,原本可以按时下班,毕竟最后一天了,然鹅,确是一直苦苦挣扎. 废话不多说,先描述一下问题:有一套大数据环境,是CDH版本的,总共4台机子,我们的 ...

  8. 桌面应用开发用到的Framework

    桌面应用开发用到的Framework https://github.com/zhangqs008/Framework_Winform

  9. C++笔记(6)——关于OJ的单点测试和多点测试

    单点测试 PAT使用的就是单点测试(LeetCode应该也是单点测试).单点测试中系统会判断每组数据的输出结果是否正确,正确则通过测试并获得这则测试的分值.题目的总得分等于通过的数据的分值之和. 代码 ...

  10. pyAudioAnalysis-audioFeatureExtraction 错误纠正

    1. TypeError: mfccInitFilterBanks() takes 2 positional arguments but 7 were given The issue In the f ...