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读取浮点数和读取文本文件示例
May 06 Python
仅利用30行Python代码来展示X算法
Apr 01 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
python访问系统环境变量的方法
Apr 29 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
python SVM 线性分类模型的实现
Jul 19 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
Python新手学习装饰器
Jun 04 Python
python退出循环的方法
Jun 18 Python
python 调用API接口 获取和解析 Json数据
Sep 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巧获服务器端信息
2006/12/06 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
php封装一个异常的处理类
2017/06/08 PHP
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python实现简单飞行棋
2020/02/06 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
Python 操作 MySQL数据库
2020/09/18 Python
python 6种方法实现单例模式
2020/12/15 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
运动会通讯稿50字
2014/01/30 职场文书
倡议书范文
2014/04/16 职场文书
公司应聘求职信
2014/06/21 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python