惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
D
DataBreaches.Net
罗磊的独立博客
博客园 - 司徒正美
Last Week in AI
Last Week in AI
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
小众软件
小众软件
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
B
Blog
博客园 - 【当耐特】
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - oO_Ray

conda pack环境迁移后jupyterlab kernel python环境找不到解决办法 启动carla-simulator时遇到 libomp.so.5 文件找不到的问题 已知圆心坐标和圆半径,求圆边点坐标 使用Python语言 推荐一款好用的json导出execl格式的文件的js工具-JsonExportExcel Locust 性能测试工具安装使用说明 pip使用的基本命令 python制作 whl 源文件,并制作本地pip源 Appium Android sdk自动化工具安装 roboframework-ride运行案例时报 Error 267 错误问题 Flask 编写http接口api及接口自动化测试 ssh免密码登录快速配置方法 Python 递归返回树形菜单JSON串 <flask> Python开发规范 121、Django rest framework入门使用 60、Docker 学习笔记(CentOS 7.1) 37、解决 HTMLTestRunner 中文显示乱码的问题 13、Selenium+python+API分类总结 35、XPath的使用示例 使用CSS选择器进行元素定位
Ansible 介绍和使用
oO_Ray · 2018-03-15 · via 博客园 - oO_Ray

简介

  Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)。主版本大概每2个月发布一次。
  Ansible与Saltstack最大的区别是Ansible无需在被控主机部署任何客户端代理,默认直接通过SSH通道进行远程命令执行或下发配置:相同点是都具备功能强大、灵活的系统管理、状态配置,两者都提供丰富的模板及API,对云计算平台、大数据都有很好的支持。

Ansible优点:

1.Agentless,去中心化
2.Stupied Simple ,上手简单,学习曲线平滑
3.SSH by default ,安全,无需安装客户端
4.配置简单、功能强大、扩展性强
5.支持API及自定义模块,可通过Python轻松扩展
6.通过Playbooks来定制强大的配置、状态管理
7.提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台
8.幂等性:一种操作重复多次结果相同

1 下载安装

当前ansible主要对python2 支持好一些,python3版本不是很完美。如需要可以查看关键技术预览版

通过Yum安装

CentS/RedHat 通过rpm 安装

自己创建RPM软件包.在Ansible项目的checkout的根目录下,或是在一个tarball中,使用 make rpm 命令创建RPM软件包. 然后可分发这个软件包或是使用它来安装Ansible.在创建之前,先确定你已安装了 rpm-build, make, and python2-devel

Ubuntu

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible

2 授权ssh key 设置免密登录

远程设备,Ansible会默认假定你使用 SSH Key(我们推荐这种)但是密码也一样可以.通过在需要的地方添加 –ask-pass选项 来启用密码验证.如果使用了sudo 特性,当sudo需要密码时,也同样适当的提供了–ask-sudo-pass选项.

ansible 主机生成 ssh key

# ssh-agent bash
# ssh-add ~/.ssh/id_rsa
# ls -la /root

生成 .ssh 文件目录,目录中生成 id_rsa(私钥) 和 id_rsa.pub (公钥),通过ssh-copy-id 把本地ansible 主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限 。

出现下面内容,说明添加成功
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.3.107's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.3.107'"
and check to make sure that only the key(s) you wanted were added.

可以进行免密登录测试

无需密码直接登录,就说明添加公钥成功。

第一条命令

现在你已经安装了Ansible,是时候从一些基本知识开始了. 编辑(或创建)/etc/ansible/hosts 并在其中加入一个或多个远程系统.你的public SSH key必须在这些系统的authorized_keys中.

现在ping 你的所有节点:

如成功会返回如下:

也可通过 -u 参数指定 登录用户

# as tsbc
$ ansible all -m ping -u tsbc
# as bruce, sudoing to root
$ ansible all -m ping -u tsbc --sudo
$ ansible all -m ping -u tsbc --sudo --sudo-user tsbc