成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

puppet extlookup 和puppet hiera使用

運維 系統運維
sky在工作中,遇到這樣的一個問題,公司有些C++服務器需要在配置文件里填寫下數據庫相關的信息. 每次部署的時候,填寫覺得挺麻煩,又浪費時間,另外還容易出錯.本打算是讓DBA 把相關信息寫進數據 庫,通過shell腳本來取得相應的變量值.不想折騰,想想puppet是可以讀取csv文件的.另外又想了想還 有沒有其它方法來實現呢?這時候看過了puppet hiera可以滿足需求.如是就寫了個類來測試. 測試 共分為兩節,一是使用extlookup來實現,二是使用hiera來實現

 [導讀]

    sky在工作中,遇到這樣的一個問題,公司有些C++服務器需要在配置文件里填寫下數據庫相關的信息.

    每次部署的時候,填寫覺得挺麻煩,又浪費時間,另外還容易出錯.本打算是讓DBA 把相關信息寫進數據

    庫,通過shell腳本來取得相應的變量值.不想折騰,想想puppet是可以讀取csv文件的.另外又想了想還

    有沒有其它方法來實現呢?這時候看過了puppet hiera可以滿足需求.如是就寫了個類來測試. 測試

    共分為兩節,一是使用extlookup來實現,二是使用hiera來實現

    [正文]

    一.使用extlookup來讀取csv文件

    1.使用csv文件,需要使用extlookup.puppet 2.6的某此版本不支持extlookup.請升級puppet.

    centos下面如何升級puppet server,請參閱centos 下升級puppet指南 :

    2. 寫了個類來調用extlookup 讀取csv文件內容:

class  server::test {
$extlookup_datadir = "/etc/puppet/modules/extdata/"
$extlookup_precedence = [ "%{name}", "test" ]
$A_db_host = extlookup("A_HOST")
$A_db_port = extlookup("A_PORT")
$A_db_usr  = extlookup("A_USER")
$A_db_pwd  = extlookup("A_PASSWD")
$A_db_name = extlookup("A_DB_NAME")

   file { 'config_file':
          path => "/tmp/server.conf,
          content => template("server/server.conf.erb"),
       }
}

注:上面的類會讀取/etc/puppet/modules/extdata/test.csv里的內容,然后使用puppet 模板
來生成新配置文件,上面的類是用來測試,實際使用需要添加相應的服務啟動等,以及服務與配置相關關聯.

3.我們來看下test.csv內的文件內容:
 extdata/test.csv
####test1###
A_HOST,10.10.1.X
A_PORT,3306
A_USER,xxx
A_PASSWD,xxxxxx
A_DB_NAME,xxxx
###test2###
T_HOST,10.10.1.X
T_PORT,3306
T_USER,xxx
T_PASSWD,xxxxxx
T_DB_NAME,xxxxxx
4.我們來看下模板內容:

cat server/templates/server.conf.erb
A_db_host:<%= A_db_host %>
A_db_port:<%= A_db_port %>
A_db_usr:<%= A_db_usr %>
A_db_pwd:<%= A_db_pwd %>
A_db_name:<%= A_db_name %>

T_db_host:<%= T_db_host %>
T_db_port:<%= T_db_port %>
T_db_usr:<%= T_db_usr %>
T_db_pwd:<%= T_db_pwd %>
T_db_name:<%= T_db_name %>

5.我們可以在客戶端運行puppet 來測試.

#puppet agent --test 

OK的沒有問題.我們接下來使用puppet 的hiera來實現上述功能.如不容易hiera,請參閱
 https://github.com/ripienaar/hiera 里面有詳細說明:

a.查看下當前gem 源.如沒有,請添加taobao的鏡像源.
gem source --list
*** CURRENT SOURCES ***

http://ruby.taobao.org/

b.我們使用gem來安裝hiera
gem install hiera hiera-puppet

c.我們來配置hiera.使用puppet hiera,以及測試puppet 下的hiera.
 mkdir /etc/puppet/hieradata ##創建目錄,用于存放xx.yaml文件

cat /etc/puppet/hieradata/dev.yaml ##編寫yaml文件

---
db_host: 10.10.1.xx
db_port: 3306
db_pwd: xxxx
db_name: xxx

class server::test ( $db_host = hiera("db_host"), $db_port = hiera("db_port") ...) {
...
}  

## 上面沒有寫全,同樣加上db_pwd,db_name即可.類內容可以抄上面的,這里省略

cat /etc/puppet/hiera.yaml
---
:backends: - yaml
:logger: console
:hierarchy: - %{env}/%{calling_module}
            - common
:yaml:
   :datadir: /etc/puppet/hieradata

我們可以先測試下,是否寫得正確.是否能讀取上面的定義的四個變量.
hiera -c /etc/puppet/hiera.yaml db_host env=dev calling_module=server ##來測試是否來讀到數據.
能正確的讀到變量,那么在客戶端可以puppet agent --test 即可.

[總結]

puppet 的hiera 是對extlookup的一個增強吧,同事看了我寫這么多,說你不于直接寫個shell,
也不至于這么麻煩,至于么,這里不想多說.每個人都有每個人的做法.這里再說下,可以使用extlookup2hiera
命令能將csv文件格式轉化為json格式的.例如:
extlookup2hiera --in sky.csv --out sky.json  --json

【編輯推薦】

  1. Clojure世界:如何做性能測試
  2. Windows安全最高境界
  3. IE8安全新功能實測,到底給不給力?
責任編輯:趙寧寧
相關推薦

2012-09-04 14:52:28

Puppet

2011-06-07 15:51:24

puppet

2012-05-05 21:43:27

puppet自動化運維

2012-05-04 19:45:30

puppet自動化運維

2011-01-28 09:20:02

CentOSpuppetforeman

2022-05-03 10:55:24

DevOpsChefPuppet

2012-05-17 11:19:05

OpenStackPuppet Labs

2014-09-26 10:28:39

LinuxPuppet

2015-12-28 17:10:55

PuppetKubernetes容器

2012-05-15 09:31:57

puppet vagrVirtualBox

2012-09-17 16:41:04

CentOS5Puppet

2011-03-02 09:36:35

Puppet 2.6.

2012-05-03 17:00:28

虛擬化云計算OpenStack

2015-12-07 15:11:18

Ubuntupuppet安裝

2012-05-03 10:46:21

OpenStackPuppet Labs云計算

2011-06-07 15:12:41

Puppet語法

2014-08-15 10:58:22

puppet3Nginx運維

2019-04-17 07:59:09

Puppet自動化集群管理

2011-11-30 13:27:19

Puppet

2013-04-16 14:55:21

自動化運維Puppet實戰
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一卡二卡 | 视频在线h | 亚洲品质自拍视频 | 国产精品久久a | 草久久| 久久国产精彩视频 | 91偷拍精品一区二区三区 | 成人啊啊啊 | 请别相信他免费喜剧电影在线观看 | 日韩精品一区二区三区老鸭窝 | 日韩午夜在线播放 | 午夜成人在线视频 | 黄色免费看 | www.久久 | 黄频免费 | 精品亚洲一区二区 | 在线国产一区 | 国产一区二区三区在线看 | 欧美精品片 | 亚洲一二三区精品 | 日韩精品久久久 | 69视频在线播放 | 国产最好的av国产大片 | 成人av观看 | 国产一二三区精品视频 | 午夜日韩精品 | 国产亚洲网站 | 欧洲成人免费视频 | 正在播放一区二区 | 亚洲精品视频在线 | 一区二区三区视频在线观看 | 99久久免费观看 | 91在线资源| 日韩欧美在线视频 | 福利视频一区 | 国产精品久久久久一区二区三区 | 亚洲精品视频在线观看视频 | 国产一区二区三区在线免费 | 欧美日韩视频在线播放 | 美女一区二区在线观看 | 人妖一区|