puppet 利用 facter, 实现不同主机调用不同变量方法
来源:互联网 发布:英文单词翻译软件 编辑:程序博客网 时间:2024/06/06 05:28
分析¶
变量类型常见三种
1. 内建变量, 如 $title, $name 等, 针对类固定的格式而进行调用2. 自定义变量, 如 myname = tttttt, 等, 但需要在每个类中进行独立定义, 不能够在类之间进行传递, 3. facter , 公共变量, 可以在每个类中共同使用, 当前打算使用 facter 作为变量的调用
测试1.¶
修改 /etc/puppet/fileserver.conf 如下, 目的, 创建文件传输目录
grep -v "#" /etc/puppet/fileserver.conf | grep -v ^$[extra_files] path /etc/puppet/files allow *
创建对应目录
mkdir /etc/puppet/files
把 facter 模板存放至 /etc/puppet/files
cat /etc/puppet/files/roles.txtdb01ip=10.10.10.1puppetip=10.10.0.100db01sqlip=10.10.10.2db01user=terrydb02ip=10.10.20.2db02sqlip=10.10.10.4db02user=bbxxswqq
创建测试用 puppet 推送模板
[root@gd02-openstack-puppet manifests]# tree.├── openstack│ ├── cinder.vclound.com.pp│ ├── db.vclound.com.pp│ ├── galera.vclound.com.pp│ ├── glance.vclound.com.pp│ ├── glusterfs.vclound.com.pp│ ├── haproxy.vclound.com.pp│ ├── keystone.vclound.com.pp│ └── test.pp <--- 测试用模板└── site.pp
测试模板内容
[root@gd02-openstack-puppet manifests]# cat openstack/test.ppnode 'gd02-openstack-testdb1.vclound.com', 'gd02-openstack-testdb2.vclound.com' { file { [ '/etc/facter','/etc/facter/facts.d']: ensure => directory, owner => root, group => root, mode => 0755, } file { '/etc/facter/facts.d/roles.txt': source => "puppet://$fileserver/extra_files/roles.txt", owner => root, group => root, mode => 0755, require => File [ '/etc/facter','/etc/facter/facts.d'], } if $fqdn == "gd02-openstack-testdb1.vclound.com" { file { "/tmp/test.txt": content => "dbip=$db01ip\npuppet=puppetip\ndbsql=$db01sqlip\ndbuser=$db01user\n", owner => root, group => root, mode => 644, require => File ['/etc/facter/facts.d/roles.txt'], } }elsif $fqdn == "gd02-openstack-testdb2.vclound.com" { file { "/tmp/test.txt": content => "dbip=$db02ip\npuppet=$puppetip\ndbsql=$db02sqlip\ndbuser=$db02user\n", owner => root, group => root, mode => 644, require => File ['/etc/facter/facts.d/roles.txt'], } }}
目的, 分别在 'gd02-openstack-testdb1.vclound.com', 'gd02-openstack-testdb2.vclound.com' 主机中添加 /tmp/test.txt
文件中分别调用 facter 变量
效果如下
testdb1 内容
[root@gd01-openstack-testdb1 ~]# cat /tmp/test.txtdbip=10.10.10.1puppet=10.10.0.100dbsql=10.10.10.2dbuser=terry
testdb2 内容
[root@gd02-openstack-testdb2 /]# cat /tmp/test.txtdbip=10.10.20.2puppet=10.10.0.100dbsql=10.10.10.4dbuser=bbxxswqq
结论: 可以在不同主机上匹配不同的 facter 内容
0 0
- puppet 利用 facter, 实现不同主机调用不同变量方法
- 同一主机,不同域名绑定不同网站(IIS主机头实现方法)
- ecshop实现不同文章调用不同模板的方法
- 实现不同js中方法相互调用
- 【JAVA】利用反射调用不同方法,减少重复代码
- Java里如何实现一个方法在不同情况下“返回”不同的类型变量?
- strut2中通配符实现不同方法的调用
- 利用HttpHandler 调用不同的Css文件
- Cordys 不同 containner 利用 WebService 调用数据
- static变量利用常量和变量初始化的不同
- JS判断不同分辨率,调用不同CSS的方法
- jquery点击倍数次数不同调用方法不同
- C++ 定义适应不同平台调用不同代码的方法
- ecshop如何实现不同的分类调用不同的模版
- 利用包实现视图内容的不同展现(续)——前台调用
- 利用滤镜实现不同浏览器的兼容
- 针对不同主机使用不同 SSH Key
- 一个Action调用两个不同的方法
- 【微软实训】Win8应用文件操作新概念
- android开发学习篇之ListView详解
- Java Sax解析xml
- 1111
- 9. 多线程 Part 2 --- 学习笔记
- puppet 利用 facter, 实现不同主机调用不同变量方法
- sizeof的使用
- Qt中使用QSqlDatabase::removeDatabase()的正确方法
- 关于 org.springframework.beans.NotWritablePropertyException 的处理
- SSH框架总结(框架分析)
- Linux 启动文件、设置环境变量的位置
- 遍历Map的四种方法
- 装双系统windows 7 旗舰版 与 ubuntu12.04
- 来自圣经的算法