一、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. tomcat安全配置参考

    0x01 基本配置 1 删除默认目录 安装完tomcat后,删除$CATALINA_HOME/webapps下默认的所有目录文件  rm -rf /srv/apache-tomcat/webapps/ ...

  2. Spring MVC Captcha 验证码

    本文专为不想一遍遍手写验证码代码的”懒猿“而生,只需要添加部分配置文件,拷贝一个控制层代码,就能在页面中方便使用.话不多说,进入主题: 一. Spring MVC 环境实现方式: 1.1 spring ...

  3. es之java搜索文档

    1:搜索文档数据(单个索引) @Test public void getSingleDocument(){ GetResponse response = client.prepareGet(" ...

  4. 【洛谷P1443 马的遍历】

    题目链接(%%%jyy大佬) 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数 ...

  5. [转] python关于ctypes使用char指针与bytes相互转换的问题

    最近研究人脸识别,需要用python调用so动态库,涉及到c/c++中的指针字符串转Python的bytes对象的问题. 按照ctypes的文档,直观方式是先创建对应的类型数组,再将指针取地址一一赋值 ...

  6. 【转】最全的 pip 使用指南,50% 你可能没用过

    [转]最全的 pip 使用指南,50% 你可能没用过 所有的 Python 开发者都清楚,Python 之所以如此受欢迎,能够在众多高级语言中,脱颖而出,除了语法简单,上手容易之外,更多还要归功于 P ...

  7. vue-element-template模板项目使用记录(持续更新)

    1. npm 使用注意事项: a. node.js 使用 v8.16.0 版本,使用 v10 版本会有各种莫名其妙的报错 b. 开箱先改淘宝镜像: npm config set registry ht ...

  8. python生成requirements.txt 导出项目依赖

    使用pip freeze $ pip freeze > requirements.txt 这种方式是把整个环境中的包都列出来了,如果是虚拟环境可以使用. 通常情况下我们只需要导出当前项目的req ...

  9. pandas 基础介绍与概览

    pandas是 基于NumPy数组构建的,特别是基于数组的函数和不使用for循环的数据处理 相关联的几个库, 分析库 scikit-learn 和 statsmodels 数值计算工具,NumPy 可 ...

  10. Maven 标准项目结构

    项目结构 src main java         源文件 resources    资源文件 filters   资源过滤文件 config   配置文件 scripts   脚本文件 webap ...