中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Perl集群配置管理系統Rex簡明手冊
來源:易賢網 閱讀:1257 次 日期:2014-09-25 11:58:23
溫馨提示:易賢網小編為您整理了“Perl集群配置管理系統Rex簡明手冊”,方便廣大網友查閱!

Rex 是 Perl 編寫的基于 SSH 鏈接的集群配置管理系統,語法上類似 Puppet DSL。官網中文版見 。本文僅為本人在部門 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'} %>

這樣才行。

更多信息請查看IT技術專欄

更多信息請查看腳本欄目
易賢網手機網站地址:Perl集群配置管理系統Rex簡明手冊
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美成人精品在线播放| 欧美在线资源| 国产日韩亚洲| 欧美在线观看一区二区三区| 国产亚洲一本大道中文在线| 久久青青草综合| 亚洲精品网址在线观看| 欧美日韩国产丝袜另类| 午夜伦理片一区| 亚洲国产高清aⅴ视频| 女同一区二区| 在线国产亚洲欧美| 国产精品vvv| 欧美大成色www永久网站婷| 亚洲一区国产视频| 国模精品一区二区三区色天香 | 一区二区亚洲精品国产| 久久久久久久久综合| 日韩视频免费看| 欧美gay视频激情| 欧美激情导航| 午夜精品电影| 狠狠综合久久| 国产免费观看久久黄| 免费人成精品欧美精品| 亚洲欧美亚洲| 久久精品亚洲一区二区| 亚洲一区二区三区影院| 狠狠久久婷婷| 激情亚洲网站| 国产精品v欧美精品v日韩精品 | 99热精品在线观看| 国产真实久久| 在线观看亚洲a| 国产精品欧美风情| 欧美精品久久一区二区| 欧美午夜视频| 欧美激情亚洲精品| 久久婷婷综合激情| 午夜在线一区| 一区二区精品国产| 亚洲国产欧美一区| 日韩亚洲欧美中文三级| 亚洲激情av| 亚洲电影欧美电影有声小说| 99国产精品久久久久久久成人热| 1024欧美极品| 欧美日韩1区2区| 国产酒店精品激情| 国产精品豆花视频| 欧美日韩中文字幕日韩欧美| 国产农村妇女毛片精品久久麻豆| 欧美色区777第一页| 欧美交受高潮1| 国产精品久久久久久久久久免费| 欧美日韩综合在线| 欧美伦理影院| 国产亚洲福利| 黄色成人在线免费| 国模私拍一区二区三区| 国产日韩欧美二区| 伊大人香蕉综合8在线视| 国产一区二区三区免费在线观看| 国产精品亚洲一区二区三区在线| 国产精品福利网站| 亚洲乱码日产精品bd| 亚洲精品一区二区在线| 亚洲最新合集| 先锋影音久久久| 国产日韩精品在线播放| 国产精品久久久久毛片软件 | 欧美日韩亚洲一区三区| 欧美精品一区三区| 欧美激情亚洲| 国产午夜精品理论片a级大结局| 欧美日韩一区二区三区在线| 能在线观看的日韩av| 欧美精品一区二区三区蜜臀 | 国产日韩在线看| 国产亚洲观看| 欧美精品激情blacked18| 国产精品v欧美精品v日本精品动漫| 国产精品日韩二区| 亚洲国产合集| 亚洲欧美日韩另类精品一区二区三区| 亚洲第一天堂av| 久久国产精品毛片| 免费人成网站在线观看欧美高清| 国产精品一区二区三区乱码| 国外精品视频| 亚洲品质自拍| 亚洲欧美视频一区二区三区| 午夜免费在线观看精品视频| 老司机一区二区| 欧美日韩不卡一区| 欧美日韩在线综合| 狠狠色丁香婷婷综合| 国产精品一区二区a| 欧美一区二区免费视频| 久久国产精品久久久| 国产亚洲精品bv在线观看| 亚洲高清自拍| 欧美一区二区三区视频免费播放| 国产精品日日摸夜夜添夜夜av| 在线观看福利一区| 亚洲影院污污.| 国产精品亚洲精品| 夜夜精品视频一区二区| 久久久欧美精品| 亚洲精品一区二区三区樱花| 欧美一区二区三区在线免费观看| 黑人极品videos精品欧美裸| 久久久久久久性| 国产精品一区久久| 一区二区三区日韩欧美精品| 欧美电影电视剧在线观看| 国产精品免费一区二区三区观看 | 亚洲午夜国产一区99re久久 | 在线看片成人| 亚洲欧美激情在线视频| 欧美日本韩国在线| 午夜国产精品视频| 欧美日韩一区综合| 91久久精品美女高潮| 欧美另类一区| 亚洲欧洲精品一区二区三区| 在线日韩视频| 欧美日韩一区二区三区在线 | 欧美精品麻豆| 午夜精品在线观看| 国产精品乱子久久久久| 亚洲精品视频在线| 亚洲欧美综合网| 欧美日韩亚洲网| 一区在线免费观看| 欧美日韩在线一区| 日韩视频免费| 国产精品xxxxx| 亚洲男女自偷自拍图片另类| 欧美日韩视频在线一区二区| 欧美在线一级va免费观看| 国产婷婷色一区二区三区四区| 一区二区免费看| 极品尤物av久久免费看 | 伊人成人开心激情综合网| 亚洲一区二区黄| 国产精品青草久久| 欧美aⅴ99久久黑人专区| 亚洲国产一区二区三区高清| 男人的天堂亚洲| 欧美亚洲综合另类| 韩国久久久久| 久久精品五月婷婷| 亚洲在线观看免费| 久久成人资源| 久久国产日韩欧美| 欧美区亚洲区| 久久久av毛片精品| 中文一区二区| 亚洲国产欧美一区二区三区丁香婷| 国产精品久久一区二区三区| 欧美国产视频在线观看| 久久久久久婷| 欧美一区二区观看视频| 亚洲特级毛片| 99re在线精品| 亚洲三级观看| 亚洲电影免费在线| 亚洲第一区中文99精品| 影音先锋日韩有码| 精品成人国产| 伊人久久av导航| 影音先锋久久| 亚洲第一精品久久忘忧草社区| 黄色一区二区三区| 激情综合自拍| 亚洲第一狼人社区| 91久久国产自产拍夜夜嗨| 亚洲国产精品第一区二区| 亚洲国产欧美国产综合一区| 亚洲国产欧美国产综合一区| 亚洲黄色尤物视频| 亚洲精选中文字幕| 99热在线精品观看| 亚洲天堂久久| 亚洲欧美一级二级三级| 午夜伦理片一区| 久久久久久有精品国产| 美女久久网站| 欧美日韩精品欧美日韩精品| 国产精品va在线播放| 国产精品女人网站| 国产中文一区二区三区| 亚洲国产精彩中文乱码av在线播放| 在线免费观看视频一区| 伊人男人综合视频网| 亚洲电影在线看| 一区二区三区欧美在线| 欧美在线视频一区二区三区| 另类av一区二区|