Linux菜鸟升级利器之ansible

一、absible是什么?

ansible是一款简单的、开源的自动化管理工具。它通过Openssh工作,没有服务器;并且被管理的客户端上面并不需要安装什么客户端软件或启动什么守护进程,没有客户端;扩展模块可以使用任何语言编写;命令自动传输到管理机执行,并返回结果;

二、安装ansible

安装ansible需要使用Fedora的EPEL源,所以要先配置好yum的epel源,在yum源文件中添加:

[base1]
name=epel
baseurl=http://dl.fedoraproject.org/pub/epel/6/x86_64/
gpgcheck=0

⑴使用yum安装

直接安装(版本是1.5.3):

# yum -y install ansible

⑵编译安装

如果需要想要使用更新的版的话,可以使用yum安装(依然需要yum的epel源):

# yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
# tar xf ansible-1.5.4.tar.gz
# cd ansible-1.5.4
# python setup.py build
# python setup.py install
# mkdir /etc/ansible
# cp -r examples/* /etc/ansible

三、简单应用

ansible的被管理机管理机需要通过ssh信任控制机,即将控制机的ssh证书发给被管理机,具体命令如下:

# ssh-keygen -t rsa -P ‘‘
# ssh-copy-id -i .ssh/id_rsa.pub [email protected]

⑴语法格式:

ansible <host-pattern> [-f forks] [-m module_name] [-a args]
//<host-pattern> :管理机的模式,需要在/etc/ansible/hosts中定义
//[ -m module_name ] 模块名称,默认是command(可省略)
//可以使用“ansible-doc -l”查看可以使用的模块

⑶简例

1、编辑/etc/ansible/hosts文件,配置被管理机

注意:由于测试环境下,没有配置dns,所以应该在主机的/etc/hosts下添加相应条目(ip hostname)

2、测试被管理机的连通性

3、为被管理机安装httpd

四、ansible playbook

ansible可以使用playbook。playbook是由一个或多个“play”组成的列表,也可以说它就是一个task的集合。play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓task无非是调用ansible的一个module。将多个play组织在一个playbook中,即可以让它们联同起来按事先编排的机制完成指定的任务计划。

使用格式:

ansible-playbook playbook_name.yaml

playbook的编写要遵守YAML文件规范。对与YAML有兴趣的童鞋可以自行查找资料。我们通过一个例子,来说明playbook的具体应用格式:

heartbeat.yaml  ##playbook名,非脚本内容
- hosts: test
//指定被管理机组,如果有多个组,组间需要用冒号分隔
  remote_user: root
//指定在被管理机上面执行该任务的用户
  tasks:
//任务
      - name: ensure heartbeat latest version #任务名
        yum: name=heartbeat state=present  #指定模块、操作
      - name: authkeys configure file   #任务名
        copy: src=/root/hb_conf/authkeys dest=/etc/ha.d/authkeys  #操作
      - name: authkeys mode 600  #任务名
        file: path=/etc/ha.d/authkeys mode=600   #操作
  notify:
      - restart heartbeat
      - name: ha.cf configure file
        copy: src=/root/hb_conf/ha.cf dest=/etc/ha.d/ha.cf
  notify:
//notify依然是一个action,这个action可用于在每个play的最后被触发,这样可以避免多次有改变发生时每次都执行指定的操作,取而代之,仅在所有的变化发生完成后一次性地执行指定操作。在notify中列出的操作称为handler,也即notify中调用handler中定义的操作。
      - restart heartbeat
  handlers:
//handlers用于定义当关注的资源发生变化时采取一定的操作;实质上handler是task列表,这些task与前面的task并没有本质上的不同
      - name: restart heartbeat
        service: name=heartbeat state=restarted


以上只是ansible的基本用法,实际生产环境中,有更多更高效的用法等待大家开发!

Linux菜鸟升级利器之ansible,布布扣,bubuko.com

时间: 2024-10-12 16:45:40

Linux菜鸟升级利器之ansible的相关文章

linux文本处理利器之grep

一.grep是什么? Grep : global search regular expression(RE) and print out the line,全面搜索正则表达式,并把行打印出来,是一个可以从文本或流中查找字符串的一个命令行工具,它可以通过使用正则表达式来更加灵活的查找一个字符 串,就是通过复杂模式进行查找以满足你的需求. 二.正则表达式的分类 1.基本正则表达式:BRE(BASIC REGULAR EXPRESSION) 2.拓展正则表达式:ERE(EXTEND REGULAR E

linux 内核升级2 转

linux内核升级 一.Linux内核概览 Linux是一个一体化内核(monolithic kernel)系统. 设备驱动程序可以完全访问硬件. Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载. 1. linux内核 linux操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件. 一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割. 计算机的硬件,含有外围设备.处理器.内存.硬盘和其他的电子设

从Linux内核升级的必要性说开去

Linux内核更新超级频繁,但是有必要时刻升级吗?个人感觉没有必要,但是你要时刻关注新特性列表,然后把自己的内核升级到离最新版本差一两个月发布的版本而不是最新版本,以保证稳定性,因为一两个月的时间足够多的慧眼会发现足够多的问题,既然自己不是Alan Cox那个梯队的大牛,最好不要在自己的生产版本上使用最新内核,当然,做试验或者Just play例外.       为什么要升级内核?是的,很多人并不同意这种观点,可能他们认为使用内核提供的最持久最稳定的接口就已经足够,多数的定制特性需要自己在用户空

linux下升级 OpenSSH

一.下载最新版本 OpenSSH OpenSSH 的官方网站:http://www.openssh.com 这里我下载的是openssh-6.2p1 使用ssh -V 命令查看一下 #安装相关的组件 yum -y install gcc openssl-devel pam-devel rpm-build 二.下面开始升级SSH,这里我写了两种升级方法 1.编译安装 OpenSSH # tar xzvf openssh-6.2p1.tar.gz # cd openssh-6.2p1 # ./con

后台任务利器之Hangfire

后台任务利器之Hangfire 一.简述 Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在.net core的环境中,由Core自带的DI管理着生命周期,免去了在NF4.X环境中配置always running的麻烦,真正做到开箱即用. 二.安装 Hangfie官方支持是MsSql和redis,除此之外,可供选择的还有PostgreSql和Mongo.在应用入口项目需要引用Hangfire.AspNetCore和特定持久库,比如使用了MsSql数据库的Hangfi

Android UI开发神兵利器之Angrytools

最近很多人在问我,个人App开发者如何去设计UI. 其实这是个人开发者最头痛的问题,搞技术的人,确实没法做到面面俱到,不可能花大量的时间去切图,去做原型设计,去做美工. 当然,虽然我们设计不出那么复杂,精巧的UI,但是简单的东西,我们在没有美工的基础上,通过一些手段,也是可以做的不错的,从本文开始,我们将介绍一些关于Android界面开发的神兵利器,正是这些大神们开发的工具,让Coder也能做出一些不是那么见不得人的设计. Angrytools,我们今天的主角,我想当初作者也是被UI弄的Angr

linux下DNS服务器之视图和轮询

案例4 视图  viwer 拓扑图: 1.查看帮助 [[email protected] ~]# vim /usr/share/doc/bind-9.8.2/sample/etc/named.conf [[email protected] ~]# cd /var/named/chroot/etc 2.[[email protected] etc]# vim named.conf 添加视图: 36 view    "lan-view" 37 { 38 zone "."

web开发利器之grunt

伴随着项目的多样化和复杂化,前端的代码维护和管理(打包.压缩等等)也越来越难以维护,人为的疏忽往往会导致不可预期的错误,对于这样的错误给我们带来了很多的麻烦和多余的工作量:对于前端的项目携同开发来说,我们每个人均会负责不同板块,将JS.CSS拆解成各自个的模块单独开发,为了方便管理这些模块均为独立的文件,而为了页面加载速度(增加了文件个数这时也产生过多的Http请求,影响页面加载速度)我们又不得不将这些文件进行合并.压缩等等,早期我们会用YUI做这些事但如今我们需要的却更多(如项目的源代码做单元

linux 强大的编辑器之vi

vi编辑器是一个处理ASCII数据的文本工具.大多数linux发行版都已经默认安装了vi编辑器.vi是visual interface的缩写vim是 visual interface improved即增强版的vi,vim默认支持代码命令加亮,这样使得文本更易看懂.vi有两种配置文件一种是全局配置文件 /etc/vimrc,全局配置文件的设置对所有用户都生效.另一种是用户配置文件,这个配置文件需要自己手动去创建,如 touch ~/.vimrc,创建在用户家目录,并把它创建为隐藏文件,在这里的设