Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于Chef和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。

本篇中我们将在CentOS7上安装并配置Ansible,并且尝试管理两个节点。

  • Ansible 服务端� ansible.linuxtechi.com ( 192.168.1.15 )

  • 节点� 192.168.1.9,192.168.1.10

第一步: 设置EPEL仓库

Ansible仓库默认不在yum仓库中,因此我们需要使用下面的命令启用epel仓库。

  1. [root@ansible~]#rpm-iUvh http://dl.Fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

第二步: 使用yum安装Ansible

  1. [root@ansible~]#yuminstall ansible

安装完成后,检查ansible版本:

  1. [root@ansible~]#ansible--version

[root@localhost ~]# ansible --version
ansible 2.1.0.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides

第三步: 设置用于节点鉴权的SSH密钥

(或者用这个办法

设置无密码ssh访问远程主机:

ssh -keygen-trsa
-copy- id -i~/. /id_rsa .pubroot@172.16.4.247)

在Ansible服务端生成密钥,并且复制公钥到节点中。

  1. root@ansible~]#ssh-keygen

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="ssh-keygen" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/151004183786403.jpg">

ssh-keygen

使用ssh-copy-id命令来复制Ansible公钥到节点中。

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="ssh-copy-id-command" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/151004183786404.jpg">

ssh-copy-id-command

第四步:为Ansible定义节点的清单

文件/etc/ansible/hosts维护着Ansible中服务器的清单。

  1. [root@ansible~]#vi/etc/ansible/hosts

  2. [test-servers]

  3. 192.168.1.9

  4. 192.168.1.10

保存并退出文件。

主机文件示例如下:

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="ansible-host" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/151004183786406.jpg">

ansible-host

第五步:尝试在Ansible服务端运行命令

使用ping检查‘test-servers’或者ansible节点的连通性。

  1. [root@ansible~]#ansible-mping'test-servers'

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="ansible-ping" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/151004183786405.jpg">

ansible-ping

执行shell命令

例子1:检查Ansible节点的运行时间(uptime)

  1. [root@ansible~]#ansible-m command-a"uptime"'test-servers'

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="ansible-uptime" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/151004183786408.jpg">

ansible-uptime

例子2:检查节点的内核版本

  1. [root@ansible~]#ansible-m command-a"uname -r"'test-servers'

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="kernel-version-ansible" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/151004183786407.jpg">

kernel-version-ansible

例子3:给节点增加用户

  1. [root@ansible~]#ansible-m command-a"useradd mark"'test-servers'

  2. [root@ansible~]#ansible-m command-a"grep mark /etc/passwd"'test-servers'

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="useradd-ansible" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/151004183786409.jpg">

useradd-ansible

例子4:重定向输出到文件中

  1. [root@ansible~]#ansible-m command-a"df -Th"'test-servers'>/tmp/command-output.txt

ottom:0px;border-left:0px;border-top:0px;border-right:0px;" alt="redirecting-output-ansible" vspace="5" src="http://img.jb51.cc/vcimg/static/loading.png" width="581" src="http://www.linuxidc.com/upload/2015_10/1510041837864010.jpg">

redirecting-output-ansible

使用Ansible批量管理远程服务器 http://www.linuxidc.com/Linux/2015-05/118080.htm

定义一个简单的playbook

保存为client.yaml结尾的文件

1
2
3
4
5
6
7
- hosts: client
remote_user: root
tasks:
- name: test ping
ping:
- name: test date
shell: date

执行playbook

1
[root@master ~]# ansible-playbook client.yaml

在 CentOS 7 中安装并使用自动化工具 Ansible的更多相关文章

  1. 使用Html5多媒体实现微信语音功能

    这篇文章主要介绍了使用Html5多媒体实现微信语音功能,需要的朋友可以参考下

  2. osx – 无法创建目录/ var / teamsserver

    OpenSSH_6.2p2,OSSLShim0.9.8r8Dec2011debug1:Readingconfigurationdata/etc/ssh_configdebug1:/etc/ssh_configline20:Applyingoptionsfor*debug1:Connectingto1.2.3.4[1.2.3.4]portPORT.debug1:Connectionestablished.Couldnotcreatedirectory‘/var/teamsserver/.ssh’.debug

  3. ios – Xcode Server 4.0 git从构建触发脚本推送

    我为一个托管在github上的项目安装了一个XcodeBot.我按照步骤和设置机器人来使用我现有的SSH密钥.验证成功,项目结算和建立.然后,我在预触发器操作中添加了一个shell脚本,它增加了plist中的版本,将其标记,并将该更改提交到github.但是当我尝试从shell脚本执行gitpush时,我得到:–推送到git@github.com:spex-app/spex-ios.git权限被拒

  4. ios – Xcode上传错误:无法打开ssh会话. (16)

    注意:我们终于上传了该应用程序,但是我们并没有真正解决这个问题,所以如果有人可以分享一些有关这个问题的宝贵意见或经验,我将不胜感激.我也检查了以下2个类似的问题,但这些没有帮助:>Erroruploadingiosapplicationtoitunesconnect“failedtoopensshsession(16)”>AppStoresubmission/distributionerror“f

  5. swift 创建cocoapod

    Butwhenyou’redevelopingyourownCocoaPod,youwillinsteadspecifyalocalpath,likethis:Therearetwobenefitstothisapproach:Itusesthelocalfilesonyourmachineforthepod,insteadoffetchingthemfromaremoterepository.n

  6. Swift 绘图板功能完善以及终极优化

    前文总结接着这篇:Swift全功能的绘图板开发,虽然在上一篇中我们已经完成了这些功能:支持铅笔绘图(画点)支持画直线支持一些简单的图形做一个真正的橡皮擦能设置画笔的粗细能设置画笔的颜色能设置背景色或者背景图但是还有一个非常重要的功能没有实现,没错,那就是Undo/Redo!

  7. swift详解之二十--------在xcode中使用git管理源代码,将代码提交到github

    在xcode中使用git管理源代码,将代码提交到github本文记录一下如何在Xcode中使用Git作为源代码控制工具,以及如何将本地的Git仓库和远程Github上的仓库集成起来,虽然这章节和swift没有关系,但我还是放在这里。对详细的git操作可以看在Xcode中使用Git进行源码控制讲得很详细,很好。将xcode与github链接起来。

  8. Swift 全功能的绘图板开发

    工程搭建先创建一个SingleViewApplication工程:语言选择Swift:为了最大程度的利用屏幕区域,我们完全隐藏掉状态栏,在Info.plist里修改或添加这两个参数:然后进入到Main.storyboard,开始搭建我们的UI。BaseBrush顾名思义,BaseBrush将会作为一个绘图的基类而存在,我们会在它的基础上创建一系列的子类,以达到弹性的设计目的。从当前的context中,得到Image,如果是ended状态或者需要支持连续不断的绘图,则将Image保存到realImage中。

  9. swift3.0 gcd 变化

    dispatchQueue首先,dispatch的全局函数不再写为下划线风格的名称了,它变成了一个更符合Swift风格的dispatchQueue的样子。这个任务在swift2.3很麻烦,不过,在3.0就不一样了:只需要一句话即可。其他变化:升级到Swift3在升级到Swift3时,你会发现,基本上每个文件都需要改动!Swift3语法书写起来要更贴近于自然语言。幸好Swift3在最终发布时,才会停止改变源代码。API的改变Swift3中最大的改变是标准库中在每个库中都采用了统一命名方式。

  10. Swift 数组、字典和集合

    前言Swift语言提供Array、Set和Dictionary三种基本的集合类型用来存储集合数据。数组是有序的数据集;集合是无序无重复的数据集;而字典是无序的键值对数组集。Swift的Array、Set和Dictionary类型被实现为泛型集合。集合的可变性如果创建一个Arrays、Sets或Dictionaries并且把它分配成一个变量,这个集合将会是可变的。Swift中的Array与Foundation中的NSArray是桥接的,可以相互转换。

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部