婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Perl集群配置管理系統Rex簡明手冊

Perl集群配置管理系統Rex簡明手冊

熱門標簽:萬利達百貨商場地圖標注 外呼電信系統 智能機器人電銷神器 惠州龍門400電話要怎么申請 河南虛擬外呼系統公司 上海企業外呼系統 電話機器人哪里有賣 熱門電銷機器人 okcc外呼系統怎么調速度

Rex 是 Perl 編寫的基于 SSH 鏈接的集群配置管理系統,語法上類似 Puppet DSL。官網中文版見 http://rex.perl-china.com 。本文僅為本人在部門 Wiki 上編寫的簡介性文檔。

常用命令參數

rex 命令參數很多,不過因為我們的環境是 krb 認證的,所以有些參數只能寫在 Rexfile 里。所以一般固定在存放了 Rexfile 的 /etc/puppet/webui 下執行命令,很多配置就自動加載了。那么還需要用到的命令參數基本就只有下面幾個:
-Tv: 查看當前 Rexfile 里定義了哪些 Task 任務,以及服務器組。
-H: 指定 Task 將在哪些 Host 上執行。這里比較方便的地方是支持 10.5.16.[95..110] 這樣的寫法。
-G: 指定 Task 將在哪些 Group 上執行。Group 的定義方式很多,Rex 默認支持的有直接在 Rexfile 里通過 group 指令指定,通過 ini 配置文件設定等等。目前我是實現了一個 groups_db 指令,來從我們的 sqlite 里獲取。groups_db('cdnbj::nginx') 就會自動生成一個名叫 ‘cdnbj::nginx' 的服務器組,包括 cdnbj 里所有部署了 nginx 的服務器。
-e: 指定一個臨時任務。通常是'say run “ipconfig”‘這樣的簡單命令形式。如果需要復雜邏輯,還是在 Rexfile 里書寫 Task。
-q:指定運行日志級別,有 -q 和 -qq。
-d:指定運行日志級別,有 -d 和 -dd。

Rexfile 介紹

參數設置部分:

復制代碼 代碼如下:

    set connection => "OpenSSH";
    user "root";
    krb5_auth;
    parallelism 10;

這四行指定采用 kerberos 認證,并發 10 個進程執行 ssh 命令。
復制代碼 代碼如下:

    desc "install puppet agent";
    task "puppet_install", sub {
    }
    before "puppet_install", sub {
    }
    after "puppet_install", sub {
    }

這幾行就是 Rexfile 的任務定義主體格式。task 指令定義任務,任務會在具體的 -H 或者 -G 服務器上執行。其他都是可選項,desc內容會在 -Tv 的時候顯示;before 和 after 定義的任務會在執行對應 task 之前或之后,在'''rex命令執行處,即10.4.1.21本地'''執行。

常用指令介紹

run

運行命令。如果有回調函數,那么會把 stdout 和 stderr 傳給回調函數;如果沒有,直接把 stdout 作為返回值。

比如:

復制代碼 代碼如下:

say run "uptime";
    run "nginx -v", sub { my ($out, $err) = @_; say $err };

file

分發文件。語法類似 Puppet 的 file。支持 source、template、ensure、on_change 等操作。注意:rex 是順序執行 Rexfile 的,所以不用設置 Puppet 的 require 指令。

比如:

復制代碼 代碼如下:

    file "/etc/yum.repos.d/xiaonei-private.repo",
      source => "repos/xiaonei-private.repo";
    file "/etc/nginx/nginx.conf",
      content => template("templates/etc/nginx/nginx.conf.tpl"),
      owner  => "nginx",
      group  => "nginx",
      mode   => 644,
      ensure => 'file',
      on_change => sub { service nginx => "restart"; };
    file "/etc/nginx/conf.d",
      ensure => "directory",

pkg

安裝軟件包,在早期版本命令寫作 install package => "nginx" ,最近改成 pkg 了,更像 Puppet 語法了。

也支持傳遞數組作為 pkg 內容。另外,rex 還 提供了一個 update_package_db 指令,用于執行 yum clean all 或者 apt-get update 操作。這點是 Puppet 欠缺的。

比如:

復制代碼 代碼如下:

 update_package_db();
   my $packages = case operating_system,
      Debian => ["apache2", "libphp5-apache2"],
      CentOS => ["httpd", "php5"],
   pkg $packages,
     ensure => "present";

ensure 也支持 present、absent、latest 等幾種含義。同 Puppet。

account

用戶管理原先用 create_user 和 create_group 指令,最近把 create_user 更新為 account 指令。

比如:

復制代碼 代碼如下:

  create_group 'puppet';
  account "puppet",
    ensure   => "present",
    uid      => 509,
    home     => '/home/puppet',
    comment  => 'Puppet Account',
    expire   => '2015-05-30',
    groups   => ['puppet'],
    password => 'puppet',
    system   => 1,
    no_create_home => TRUE,
    ssh_key        => "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChUw...";

tail

用來同時觀測多臺主機的日志的最新追加情況。應該是比較有用的一個小功能。代碼如下:

復制代碼 代碼如下:

   tail "/var/log/syslog", sub {
     my ($data) = @_;
     my $server = Rex->get_current_connection()->{'server'};
     print "$server>> $data\n";
   };

遠程主機詳情相關變量

Puppet 有專門的 Facts 變量來判定遠程主機的詳情。Rex 因為走 SSH 連接,不會在遠程主機上跑一個 agent 來收集這些信息,所以還是通過遠程執行命令的方式來提供相關內容。目前常用的幾個函數(也可以認為是變量)有:

is_redhat

這個用來判斷操作系統是否是 RedHat 系列。之前因為有一批 Debian 的機器,所以 Rexfile 里一直有這么個操作邏輯:

復制代碼 代碼如下:

    if ( is_debian ) {
    } elsif ( is_redhat ) {
    } else {
    }

operating_system_version

這個用來判斷具體的操作系統版本號。比如 CentOS5 跟 CentOS6 應該應用的操作就不一樣,甚至 CentOS6.5 和 CentOS6.2 也有可能不一致。

比如 Rexfile 里的 1w10 任務:

復制代碼 代碼如下:

    if ( is_redhat and operating_system_version >= 64 )
    }

route

rex 可以收集的信息比 puppet 要多很多,比如網絡相關、sysctl 相關等等。Rexfile 里的 1w10 任務用到了 route 信息來獲取默認網關和網卡接口。

復制代碼 代碼如下:

    my ($default_route) = grep {
      $_->{"flags"} =~ m/UG/ (
        $_->{"destination"} eq "0.0.0.0" ||
        $_->{"destination"} eq "default" )
      } route;
    if ($default_route) {
        my $default_gw = $default_route->{"gateway"};
        my $default_if = $default_route->{"iface"};
        run "ip route change default via ${default_gw} dev ${default_if} initcwnd 10 initrwnd 10";
    };

connection

在多臺主機執行任務的時候,大多希望在輸出的時候看到某條結果是哪個主機返回的。前面 tail 任務就用到了,不過寫起來非常復雜的樣子。其實 rex 提供給更簡潔一點的寫法。就是 connection->server。

復制代碼 代碼如下:

  task 'tellmewhoyouare', sub {
    say connection->server;
  }

當前連接的服務器的整個信息,也可以通過 get_system_information 指令來獲取,這兩個指令其實是等同的。不過根據字面意思一般用來不同語境下。

這些信息如果要完整查看,可以通過 dump_system_information 指令來查看。這個命令跟 print Dumper get_system_information() 不一樣的是,會把每個鍵作為單獨變量。而這些變量就是可以直接用于 rex 的 template 里的內嵌變量。比如:

復制代碼 代碼如下:

  listen %= $eth0_ip %>:80;
  visible_hostname %= $hostname %>

不在 dump_system_information 清單里的變量,也想在 template 里使用的,就必須顯式傳遞。這點和 Puppet 不一致,puppet 在 template 里可以通過 scope.lookupvar() 指令獲取任意pp類里設定的變量,這一點完全無視詞法作用域的存在==!

比如:

復制代碼 代碼如下:

   file '/etc/elasticsearch/elasticsearch.yml',
     content => template('files/es.yml.tmpl', conf => {
       clustername => 'logstash'
     });

對應的 es.yml.tmpl 里寫作:
復制代碼 代碼如下:

  clustername: %= $conf->{'clustername'} %>

這樣才行。

您可能感興趣的文章:
  • 南方數據企業網站管理系統 V9.0全屏版完整版
  • 萬博企業網站管理系統V2006多語完整版 破解版 下載
  • NPOINT免費虛擬主機管理系統windows2003的安裝方法【圖文】
  • CentOS服務器下安裝Webmin管理系統的步驟
  • CentOS VPS安裝Kloxo免費虛擬主機管理系統
  • php小型企業庫存管理系統的設計與實現代碼
  • ASP.NET網站管理系統退出 清除瀏覽器緩存,Session的代碼
  • 虛擬主機管理系統DirectAdmin、Websitepanel和Cpanel功能對比評測
  • 護衛神 主機管理系統使用說明(用戶前臺設置)
  • Android實現學生管理系統

標簽:綿陽 百色 綏化 周口 秦皇島 淮安 合肥 周口

巨人網絡通訊聲明:本文標題《Perl集群配置管理系統Rex簡明手冊》,本文關鍵詞  Perl,集群,配置,管理系統,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Perl集群配置管理系統Rex簡明手冊》相關的同類信息!
  • 本頁收集關于Perl集群配置管理系統Rex簡明手冊的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产在线不卡一区| 久久精品在线免费观看| 国产日韩欧美电影| 欧美日韩中字一区| 国产不卡一区视频| 日本中文字幕一区二区有限公司| 中文字幕精品一区| 久久亚洲一区二区三区明星换脸| 欧美日韩一区二区三区在线看| 国产盗摄一区二区| 91在线视频播放地址| 狠狠色2019综合网| 亚洲高清久久久| 国产精品人人做人人爽人人添| 欧美久久一二区| 日本韩国欧美国产| www.日韩大片| 国产激情一区二区三区| 国产精品77777| 极品销魂美女一区二区三区| 亚洲一区二区精品3399| 综合激情成人伊人| 亚洲日本中文字幕区| 国产精品久久夜| 国产精品久久久久久福利一牛影视| 日韩欧美美女一区二区三区| 欧美人xxxx| 欧美久久婷婷综合色| 在线播放国产精品二区一二区四区| 欧美日韩国产影片| 欧美色图激情小说| 欧美剧情电影在线观看完整版免费励志电影 | 91成人国产精品| 91香蕉国产在线观看软件| 成人综合激情网| www.欧美.com| 91丝袜美女网| 在线观看一区二区视频| 欧美午夜不卡视频| 91精品国产欧美一区二区成人 | 337p日本欧洲亚洲大胆精品| 91国产视频在线观看| 在线视频观看一区| 欧美大片在线观看一区二区| 国产aⅴ综合色| 国产一区二区三区免费看| 日韩精品福利网| 国产精品一二三四区| 九一九一国产精品| 极品少妇一区二区| 精品国产乱码久久| 亚洲精品欧美二区三区中文字幕| 国产午夜亚洲精品羞羞网站| 久久精品免视看| 一区二区三区四区激情| 91国在线观看| 91精品国产欧美一区二区成人| 久久精品网站免费观看| 日本中文在线一区| 精品乱人伦一区二区三区| 国产三区在线成人av| 丁香激情综合五月| 亚洲精品日日夜夜| 337p日本欧洲亚洲大胆精品 | 毛片一区二区三区| 久久婷婷色综合| 91成人在线免费观看| 久久国产视频网| 亚洲免费资源在线播放| 欧美日韩一区二区三区不卡| 欧美日韩一区二区欧美激情| 国产精品亚洲第一| 777a∨成人精品桃花网| 91亚洲精品一区二区乱码| 久久国产福利国产秒拍| 欧美电影精品一区二区| 午夜欧美一区二区三区在线播放| 色先锋资源久久综合| 国产欧美日韩一区二区三区在线观看| 亚洲成人免费在线| 91精品福利在线| 日韩av中文字幕一区二区三区| 337p亚洲精品色噜噜噜| 欧美激情资源网| 91精品久久久久久久久99蜜臂| 综合久久久久久| 一区二区三区在线免费播放| 欧美国产成人精品| 蜜臀av一区二区三区| 欧美怡红院视频| 成人午夜大片免费观看| 91免费看视频| 久久久久久99久久久精品网站| 夜夜嗨av一区二区三区四季av| 狠狠久久亚洲欧美| 欧美精品xxxxbbbb| 午夜影院在线观看欧美| 色天天综合色天天久久| 亚洲欧洲成人自拍| 国产精品成人一区二区三区夜夜夜| 成人精品国产免费网站| 亚洲综合成人在线| 久久新电视剧免费观看| 韩日欧美一区二区三区| 日韩一区二区在线看片| 视频一区中文字幕国产| 欧美喷潮久久久xxxxx| 国产福利91精品一区二区三区| 国产精品久久久久久久浪潮网站| 亚洲一卡二卡三卡四卡五卡| 91欧美一区二区| 亚洲黄色小视频| 在线一区二区三区四区五区 | 一区二区三区中文字幕电影| 色噜噜久久综合| 亚瑟在线精品视频| 日韩免费成人网| 高清shemale亚洲人妖| 亚洲少妇屁股交4| 欧美男人的天堂一二区| 麻豆成人免费电影| 国产精品久久久久久久久搜平片| 欧洲一区在线观看| 九九视频精品免费| √…a在线天堂一区| 色先锋久久av资源部| 久久精品72免费观看| 亚洲欧美综合网| 欧美电影免费观看高清完整版在 | 国产精品女同一区二区三区| 99国产精品国产精品毛片| 亚洲电影一级黄| 久久久激情视频| 欧美综合色免费| 国产精品资源网| 亚洲成人精品影院| 久久久一区二区三区| 91国产成人在线| 国产剧情在线观看一区二区| 亚洲亚洲精品在线观看| 久久久久久久久久美女| 欧美日韩日本视频| 国产.精品.日韩.另类.中文.在线.播放| 亚洲丝袜制服诱惑| 精品不卡在线视频| 欧美日韩一级黄| 波多野结衣中文字幕一区 | 色成人在线视频| 日韩黄色在线观看| 国产精品久久久久久久久久免费看| 欧美少妇bbb| 国内国产精品久久| 中文字幕在线一区| 在线成人av网站| 色88888久久久久久影院野外| 色悠悠久久综合| 中文字幕欧美国产| 欧美性极品少妇| 天天综合网 天天综合色| 97se狠狠狠综合亚洲狠狠| 亚洲成人免费视| 北条麻妃一区二区三区| 亚洲国产精品久久人人爱蜜臀| 日本午夜一本久久久综合| 国产欧美一区二区三区在线老狼 | 老司机精品视频线观看86| www激情久久| 亚洲综合一区二区精品导航| 精品人伦一区二区色婷婷| 精品国产一区二区三区忘忧草| 亚洲精品欧美激情| 成人午夜在线免费| 久久女同精品一区二区| 久久国产综合精品| 99久久777色| 亚洲一区二区综合| 国产精品麻豆欧美日韩ww| 亚洲国产成人午夜在线一区| 久久亚洲一区二区三区四区| 久久久久99精品国产片| 久久青草欧美一区二区三区| 亚洲日本va午夜在线影院| 亚洲综合视频网| 亚洲伦理在线免费看| 亚洲成人午夜电影| 中文字幕欧美一区| 欧美中文字幕一区二区三区| 国产精品久久久久久久久免费相片 | 国产成人高清在线| 欧日韩精品视频| 亚洲不卡av一区二区三区| 国产一区二区三区| 久久久久99精品一区| 国内久久精品视频| 国产一区不卡精品| 色婷婷综合久久久中文字幕| 国产精品女上位| 精品久久久久久最新网址| 日韩亚洲电影在线| 久久99精品久久只有精品|