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函数学习笔记
Oct 07 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
Python实现的概率分布运算操作示例
Aug 14 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
Python中psutil的介绍与用法
May 02 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
Python-接口开发入门解析
Aug 01 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
浅谈Python访问MySQL的正确姿势
Jan 07 Python
浅谈anaconda python 版本对应关系
Oct 07 Python
Django后端按照日期查询的方法教程
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 error_log 函数的使用
2009/04/13 PHP
php 图片上传类代码
2009/07/17 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
在Python中处理XML的教程
2015/04/29 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Python 控制终端输出文字的实例
2019/07/12 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
爱心倡议书范文
2014/05/12 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
募捐感谢信
2015/01/22 职场文书
党员反邪教心得体会
2016/01/15 职场文书
车位出租协议书范本
2016/03/19 职场文书