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对象类型及其运算方法(详解)
Jul 05 Python
使用python 和 lint 删除项目无用资源的方法
Dec 20 Python
python中的迭代和可迭代对象代码示例
Dec 27 Python
Python实现图片拼接的代码
Jul 02 Python
python 获取url中的参数列表实例
Dec 18 Python
对pandas写入读取h5文件的方法详解
Dec 28 Python
python字典的常用方法总结
Jul 31 Python
python数据归一化及三种方法详解
Aug 06 Python
Python动态声明变量赋值代码实例
Dec 30 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
手把手教你用Django执行原生SQL的方法
Feb 18 Python
python pyg2plot的原理知识点总结
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
东方红 - 来复式再生机的修复
2021/03/02 无线电
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
JS 页面计时器示例代码
2013/10/28 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python之生产者消费者模型实现详解
2019/07/27 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
python获取array中指定元素的示例
2019/11/26 Python
python剪切视频与合并视频的实现
2020/03/03 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
sklearn的predict_proba使用说明
2020/06/28 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
2014年车间主任工作总结
2014/12/10 职场文书
公司租车协议书
2015/01/29 职场文书
浅谈Golang 切片(slice)扩容机制的原理
2021/06/09 Golang
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫