python自动化之Ansible的安装教程


Posted in Python onJune 13, 2019

本文实例讲述了python自动化之Ansible的安装。分享给大家供大家参考,具体如下:

一 点睛

Ansible只需在管理端部署环境即可,建议采用yum源方式来实现部署。

二 安装Ansible

只需要在主服务器安装(主控端)

[root@localhost dev]# yum install ansible -y

三 测试

1 修改在主控机配置文件/etc/ansible/hosts

## green.example.com
## blue.example.com
192.168.0.101
192.168.0.102
[webservers]
## alpha.example.org
## beta.example.org
192.168.0.101
192.168.0.102

2 执行下面操作

通过ping模块测试主机的连通性,分别对单主机及组进行ping操 作,结果如下,说明安装、测试成功。

[root@localhost ansible]# ansible 192.168.0.101 -m ping -k
SSH password:
192.168.0.101 | SUCCESS => {
  "changed": false,
  "ping": "pong"
}
[root@localhost ansible]# ansible webservers -m ping -k
SSH password:
192.168.0.102 | FAILED! => {
  "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host."
}
192.168.0.101 | SUCCESS => {
  "changed": false,
  "ping": "pong"
}

3 说明

由于主控端与被控主机未配置SSH证书信任,需要在执行ansible命令时添加-k参数,要求提供root(默认)账号密码,即在提示“SSH password:”时输入。

四 配置Linux主机SSH无密码访问

1 点睛

为了避免Ansible下发指令时输入目标主机密码,通过证书签名达到SSH无密码是一个好的方案,推荐使用ssh-keygen与ssh-copy-id来实现快速证书的生成及公钥下发,其中ssh-keygen生成一对密钥,使用sshcopy-id来下发生成的公钥。

第一步:需要配置与目标设备的密钥认证支持。

[root@localhost home]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:9/pGNxnQVWAWpss7PYtJcUDyHsCexgYY6NGWy/oOhTg root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|   o.+ .o ..*++|
|  o = . .=.=. |
|  . + . + .=.  |
|  ...o  *o +. |
| E ... So. = .o |
|  ...  . ..=+ |
|  ..   .=.o. |
|   ..  o.+ o |
|   ..  .o+ . |
+----[SHA256]-----+

私钥文件可以存放在默认路径“~/.ssh/id_rsa”。

第二步:接下来同步公钥文件id_rsa.pub到目标主机,推荐使用ssh-copy-id公钥拷贝工具

[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.102
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Kernel \r on an \m
root@192.168.0.102's password:
Number of key(s) added: 1
Now try logging into the machine, with:  "ssh 'root@192.168.0.102'"
and check to make sure that only the key(s) you wanted were added.

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python判断变量是否已经定义的方法
Aug 18 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
python如何写try语句
Jul 14 Python
详解python变量与数据类型
Aug 25 Python
了解一下python内建模块collections
Sep 07 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
Django model class Meta原理解析
Nov 14 Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 Python
python如何做代码性能分析
Apr 26 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 #Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 #Python
Python语法分析之字符串格式化
Jun 13 #Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 #Python
通过pycharm使用git的步骤(图文详解)
Jun 13 #Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 #Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 #Python
You might like
3.从实例开始
2006/10/09 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
php中opendir函数用法实例
2014/11/15 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
django实现支付宝支付实例讲解
2019/10/17 Python
Python读取csv文件实例解析
2019/12/30 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
Java servlet面试题
2012/03/04 面试题
JSF的标签库有哪些
2012/04/27 面试题
学生自我评价范文
2014/02/02 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
电气自动化求职信
2014/06/24 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
教师个人年度总结
2015/02/11 职场文书