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 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
Python中的异常处理简明介绍
Apr 13 Python
Python计算一个文件里字数的方法
Jun 15 Python
Python读写unicode文件的方法
Jul 10 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
python中set()函数简介及实例解析
Jan 09 Python
使用python生成目录树
Mar 29 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
python常量折叠基础知识点讲解
Feb 28 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
php解决约瑟夫环示例
2014/04/09 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
php-app开发接口加密详解
2018/04/18 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
python实现查询IP地址所在地
2015/03/29 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
Python中的字符串替换操作示例
2016/06/27 Python
python框架django基础指南
2016/09/08 Python
Python实现定时任务
2017/02/08 Python
django的csrf实现过程详解
2019/07/26 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
关爱老人标语
2014/06/21 职场文书
伊琍体标语
2014/06/25 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书