天天看點

puppet

puppet是什麼?

puppet是一款用ruby語言編寫的,采用C/S架構的自動化運維管理工具或配置管理工具。puppet用戶端從伺服器(使用puppet apply manifestname子指令可以從本地擷取配置檔案)擷取配置檔案manifestname,然後執行相應的操作。

例子1: 建立新使用者,使用--noop模拟執行

lin@ubuntu:~/workspace/dev_ops/puppet$ cat user.pp
user{'puppet':
 name => puppet,
 ensure => present,
}
lin@ubuntu:~/workspace/dev_ops/puppet$ puppet apply --verbose --noop user.pp
Notice: Compiled catalog for ubuntu.localdomain in environment production in 0.06 seconds
Info: Applying configuration version '1552664253'
Notice: Finished catalog run in 0.01 seconds

           

配置是puppet執行的依據,其模闆為

type{'title':
attr1 => value1,
attr2 => value2,
attr3 => value3,
...
attrN => valueN
}
           
  • type: 即puppet要操作的對象,如user,service,file等,可以使用指令puppet describe -l檢視可以操作的對象
  • title: 給要操作的資源的名字,如配置中需要建立兩個user,title必須不同。
  • attr: 即type支援的屬性,使用puppet describe user 可以檢視,簡略檢視指令為puppet describe -s user

元屬性,metaparameter,當需要自定義puppet處理對象的先後順序,或定義操作對象的依賴時,需要使用元屬性來達到目的。使用puppet describe -s -m user可以看到user對象支援的元屬性

Meta Parameters
---------------
    alias, audit, before, loglevel, noop, notify, require, schedule, stage,
    subscribe, tag

           

元屬性詳細可以看Metaparameter Reference

關于puppet常用資源及其屬性

  • 常用資源及其屬性總結

使用元屬性來解決資源間的依賴和引用

  • 資源間的依賴關系以及資源的引用