天天看点

如何根据指定软件版本制作属于自己的puppet yum源

如何根据版本制作属于自己的puppet yum源

 童鞋们在使用puppetlabs yum源安装puppet的时候,会被选则最新版的puppet版本进行安装,而在我们正在的生产环境的时候,并不需要最新版本,而是我们制定的一个版本,然后不同的版本依赖的包也不一样,这样种种的问题应该如何搞定呢,又应该如何制定自己的yum源呢。

以RHEL5.7为例

1

2

3

<code>童鞋们在使用puppetlabs yum源安装puppet的时候,会被选则最新版的puppet版本进行安装,而在我们正在的生产环境的时候,并不需要最新版本,而是我们制定的一个版本,然后不同的版本依赖的包也不一样,这样种种的问题应该如何搞定呢,又应该如何制定自己的yum源呢。</code>

<code>以RHEL5.</code><code>7</code><code>为例</code>

<code>1</code><code>、先将对应的光盘创建为本地源</code>

4

<code>[root@agent2 yum.repos.d]# yum install createrepo yum-priorities</code>

<code>[root@agent2 yum.repos.d]# rpm -qa | egrep  </code><code>"createrepo|yum-priorities"</code>

<code>yum-priorities-</code><code>1.1</code><code>.</code><code>16</code><code>-</code><code>16</code><code>.el5</code>

<code>createrepo-</code><code>0.4</code><code>.</code><code>11</code><code>-</code><code>3</code><code>.el5</code>

5

6

7

8

<code>[root@agent2 puppet]# wget http:</code><code>//yum.puppetlabs.com/el/57/products/x86_64/puppet-2.7.25-1.el5.noarch.rpm</code>

<code>[root@agent2 puppet]# wget http:</code><code>//yum.puppetlabs.com/el/57/products/x86_64/puppet-server-2.7.25-1.el5.noarch.rpm</code>

<code>[root@agent2 puppet]# wget http:</code><code>//yum.puppetlabs.com/el/57/products/x86_64/facter-1.7.4-1.el5.x86_64.rpm</code>

<code>[root@agent2 puppet]# ll</code>

<code>total </code><code>1272</code>

<code>-rw-r--r-- </code><code>1</code> <code>root root   </code><code>88979</code> <code>Dec </code><code>18</code>  <code>2013</code> <code>facter-</code><code>1.7</code><code>.</code><code>4</code><code>-</code><code>1</code><code>.el5.x86_64.rpm</code>

<code>-rw-r--r-- </code><code>1</code> <code>root root </code><code>1175323</code> <code>Jan  </code><code>7</code>  <code>2014</code> <code>puppet-</code><code>2.7</code><code>.</code><code>25</code><code>-</code><code>1</code><code>.el5.noarch.rpm</code>

<code>-rw-r--r-- </code><code>1</code> <code>root root   </code><code>25374</code> <code>Jan  </code><code>7</code>  <code>2014</code> <code>puppet-server-</code><code>2.7</code><code>.</code><code>25</code><code>-</code><code>1</code><code>.el5.noarch.rpm</code>

9

10

11

<code>[root@agent2 puppet]# createrepo .</code>

<code>3</code><code>/</code><code>3</code> <code>- puppet-</code><code>2.7</code><code>.</code><code>25</code><code>-</code><code>1</code><code>.el5.noarch.rpm                                      </code>

<code>Saving Primary metadata</code>

<code>Saving file lists metadata</code>

<code>Saving other metadata</code>

<code>total </code><code>1276</code>

<code>drwxr-xr-x </code><code>2</code> <code>root root    </code><code>4096</code> <code>Oct  </code><code>2</code> <code>10</code><code>:</code><code>43</code> <code>repodata</code>

<code>[root@agent2 yum.repos.d]# cat puppet.repo</code>

<code>[puppet]</code>

<code>name=puppet </code><code>for</code> <code>rhel5.</code><code>7</code>

<code>baseurl=file:</code><code>///puppet</code>

<code>enabled=</code><code>1</code>

<code>gpgcheck=</code><code>0</code>

<code>priority=</code><code>2</code> <code>#设置优先级为本地光盘源之后</code>

<code>[root@agent2 ~]# wget yum.puppetlabs.com/el/</code><code>57</code><code>/products/x86_64/puppetlabs-release-</code><code>5</code><code>-</code><code>7</code><code>.noarch.rpm</code>

<code>[root@agent2 ~]# rpm -vih puppetlabs-release-</code><code>5</code><code>-</code><code>7</code><code>.noarch.rpm</code>

<code>[root@agent2 ~]# ll /etc/yum.repos.d/</code>

<code>total </code><code>16</code>

<code>-rw-r--r-- </code><code>1</code> <code>root root   </code><code>98</code> <code>Oct  </code><code>2</code> <code>10</code><code>:</code><code>45</code> <code>base.repo</code>

<code>-rw-r--r-- </code><code>1</code> <code>root root </code><code>1250</code> <code>Apr </code><code>13</code> <code>06</code><code>:</code><code>41</code> <code>puppetlabs.repo #由官方源安装而成</code>

<code>-rw-r--r-- </code><code>1</code> <code>root root   </code><code>90</code> <code>Oct  </code><code>2</code> <code>10</code><code>:</code><code>44</code> <code>puppet.repo</code>

<code>-rw-r--r-- </code><code>1</code> <code>root root   </code><code>67</code> <code>Oct  </code><code>2</code> <code>10</code><code>:</code><code>37</code> <code>redhat.repo</code>

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

<code>[root@agent2 ~]# cat /etc/yum.repos.d/puppetlabs.repo</code>

<code>[puppetlabs-products]</code>

<code>name=Puppet Labs Products El </code><code>5</code> <code>- $basearch</code>

<code>baseurl=http:</code><code>//yum.puppetlabs.com/el/5/products/$basearch</code>

<code>gpgkey=file:</code><code>///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs</code>

<code>gpgcheck=</code><code>1</code>

<code>priority=</code><code>3</code> <code>#设置优先级最低</code>

<code>[puppetlabs-deps]</code>

<code>name=Puppet Labs Dependencies El </code><code>5</code> <code>- $basearch</code>

<code>baseurl=http:</code><code>//yum.puppetlabs.com/el/5/dependencies/$basearch</code>

<code>[puppetlabs-devel]</code>

<code>name=Puppet Labs Devel El </code><code>5</code> <code>- $basearch</code>

<code>baseurl=http:</code><code>//yum.puppetlabs.com/el/5/devel/$basearch</code>

<code>enabled=</code><code>0</code>

<code>[puppetlabs-products-source]</code>

<code>name=Puppet Labs Products El </code><code>5</code> <code>- $basearch - Source</code>

<code>baseurl=http:</code><code>//yum.puppetlabs.com/el/5/products/SRPMS</code>

<code>failovermethod=priority</code>

<code>[puppetlabs-deps-source]</code>

<code>name=Puppet Labs Source Dependencies El </code><code>5</code> <code>- $basearch - Source</code>

<code>baseurl=http:</code><code>//yum.puppetlabs.com/el/5/dependencies/SRPMS</code>

<code>[puppetlabs-devel-source]</code>

<code>name=Puppet Labs Devel El </code><code>5</code> <code>- $basearch - Source</code>

<code>baseurl=http:</code><code>//yum.puppetlabs.com/el/5/devel/SRPMS</code>

<code>[main]</code>

<code>cachedir=/</code><code>var</code><code>/cache/yum</code>

<code>keepcache=</code><code>1</code> <code>#设置保存下载的软件缓存</code>

<code>debuglevel=</code><code>2</code>

<code>logfile=/</code><code>var</code><code>/log/yum.log</code>

<code>distroverpkg=redhat-release</code>

<code>tolerant=</code><code>1</code>

<code>exactarch=</code><code>1</code>

<code>obsoletes=</code><code>1</code>

<code>plugins=</code><code>1</code>

<code># Note: yum-RHN-plugin doesn't honor </code><code>this</code><code>.</code>

<code>metadata_expire=1h</code>

<code># Default.</code>

<code># installonly_limit = </code><code>3</code>

<code># PUT YOUR REPOS HERE OR IN separate files named file.repo</code>

<code># </code><code>in</code> <code>/etc/yum.repos.d</code>

yum会按照制定的优先级去搜索,由于自定义puppet源比官方源优先级高,所以会优先选择自定义的puppet源中的安装包版本

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

<code>[root@agent2 ~]# yum clean all</code>

<code>Loaded plugins: priorities, product-id, security, subscription-manager</code>

<code>Updating Red Hat repositories.</code>

<code>Cleaning up Everything</code>

<code>[root@agent2 ~]# yum install puppet</code>

<code>puppet                                                                                            |  </code><code>951</code> <code>B     </code><code>00</code><code>:</code><code>00</code>

<code>puppet/primary                                                                                    | </code><code>1.7</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>puppet                                                                                                               </code><code>3</code><code>/</code><code>3</code>

<code>puppetlabs-deps                                                                                   | </code><code>1.9</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>puppetlabs-deps/primary_db                                                                        |  </code><code>43</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>puppetlabs-products                                                                               | </code><code>1.9</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>puppetlabs-products/primary_db                                                                    |  </code><code>95</code> <code>kB     </code><code>00</code><code>:</code><code>03</code>

<code>rhel-base                                                                                         | </code><code>1.5</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>rhel-base/primary                                                                                 | </code><code>913</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>rhel-base                                                                                                      </code><code>3261</code><code>/</code><code>3261</code>

<code>157</code> <code>packages excluded due to repository priority protections</code>

<code>Setting up Install Process</code>

<code>Resolving Dependencies</code>

<code>--&gt; Running transaction check</code>

<code>---&gt; Package puppet.noarch </code><code>0</code><code>:</code><code>2.7</code><code>.</code><code>25</code><code>-</code><code>1</code><code>.el5 </code><code>set</code> <code>to be updated</code>

<code>--&gt; Processing Dependency: facter &lt; </code><code>1</code><code>:</code><code>2.0</code> <code>for</code> <code>package</code><code>: puppet</code>

<code>--&gt; Processing Dependency: ruby(abi) &gt;= </code><code>1.8</code> <code>for</code> <code>package</code><code>: puppet</code>

<code>--&gt; Processing Dependency: facter &gt;= </code><code>1.5</code> <code>for</code> <code>package</code><code>: puppet</code>

<code>--&gt; Processing Dependency: ruby &gt;= </code><code>1.8</code><code>.</code><code>5</code> <code>for</code> <code>package</code><code>: puppet</code>

<code>--&gt; Processing Dependency: ruby-shadow </code><code>for</code> <code>package</code><code>: puppet</code>

<code>--&gt; Processing Dependency: /usr/bin/ruby </code><code>for</code> <code>package</code><code>: puppet</code>

<code>--&gt; Processing Dependency: ruby-augeas </code><code>for</code> <code>package</code><code>: puppet</code>

<code>--&gt; Processing Dependency: libselinux-ruby </code><code>for</code> <code>package</code><code>: puppet</code>

<code>---&gt; Package facter.x86_64 </code><code>1</code><code>:</code><code>1.7</code><code>.</code><code>4</code><code>-</code><code>1</code><code>.el5 </code><code>set</code> <code>to be updated</code>

<code>---&gt; Package libselinux-ruby.x86_64 </code><code>0</code><code>:</code><code>1.33</code><code>.</code><code>4</code><code>-</code><code>5.7</code><code>.el5 </code><code>set</code> <code>to be updated</code>

<code>---&gt; Package ruby.x86_64 </code><code>0</code><code>:</code><code>1.8</code><code>.</code><code>5</code><code>-</code><code>19</code><code>.el5_6.</code><code>1</code> <code>set</code> <code>to be updated</code>

<code>---&gt; Package ruby-augeas.x86_64 </code><code>0</code><code>:</code><code>0.4</code><code>.</code><code>1</code><code>-</code><code>2</code><code>.el5 </code><code>set</code> <code>to be updated</code>

<code>--&gt; Processing Dependency: augeas-libs &gt;= </code><code>0.8</code><code>.</code><code>0</code> <code>for</code> <code>package</code><code>: ruby-augeas</code>

<code>--&gt; Processing Dependency: libaugeas.so.</code><code>0</code><code>(AUGEAS_0.</code><code>8.0</code><code>)(64bit) </code><code>for</code> <code>package</code><code>: ruby-augeas</code>

<code>--&gt; Processing Dependency: libaugeas.so.</code><code>0</code><code>(AUGEAS_0.</code><code>11.0</code><code>)(64bit) </code><code>for</code> <code>package</code><code>: ruby-augeas</code>

<code>--&gt; Processing Dependency: libaugeas.so.</code><code>0</code><code>(AUGEAS_0.</code><code>10.0</code><code>)(64bit) </code><code>for</code> <code>package</code><code>: ruby-augeas</code>

<code>--&gt; Processing Dependency: libaugeas.so.</code><code>0</code><code>(AUGEAS_0.</code><code>1.0</code><code>)(64bit) </code><code>for</code> <code>package</code><code>: ruby-augeas</code>

<code>--&gt; Processing Dependency: libaugeas.so.</code><code>0</code><code>(AUGEAS_0.</code><code>12.0</code><code>)(64bit) </code><code>for</code> <code>package</code><code>: ruby-augeas</code>

<code>--&gt; Processing Dependency: libaugeas.so.</code><code>0</code><code>()(64bit) </code><code>for</code> <code>package</code><code>: ruby-augeas</code>

<code>---&gt; Package ruby-libs.x86_64 </code><code>0</code><code>:</code><code>1.8</code><code>.</code><code>5</code><code>-</code><code>19</code><code>.el5_6.</code><code>1</code> <code>set</code> <code>to be updated</code>

<code>---&gt; Package ruby-shadow.x86_64 </code><code>0</code><code>:</code><code>1.4</code><code>.</code><code>1</code><code>-</code><code>8</code><code>.el5 </code><code>set</code> <code>to be updated</code>

<code>---&gt; Package augeas-libs.x86_64 </code><code>0</code><code>:</code><code>0.10</code><code>.</code><code>0</code><code>-</code><code>4</code><code>.el5 </code><code>set</code> <code>to be updated</code>

<code>--&gt; Finished Dependency Resolution</code>

<code>Dependencies Resolved</code>

<code>=========================================================================================================================</code>

<code> </code><code>Package                       Arch                 Version                          Repository                     Size</code>

<code>Installing:</code>

<code> </code><code>puppet                        noarch               </code><code>2.7</code><code>.</code><code>25</code><code>-</code><code>1</code><code>.el5                     puppet                        </code><code>1.1</code> <code>M</code>

<code>Installing </code><code>for</code> <code>dependencies:</code>

<code> </code><code>augeas-libs                   x86_64               </code><code>0.10</code><code>.</code><code>0</code><code>-</code><code>4</code><code>.el5                     puppetlabs-deps               </code><code>376</code> <code>k</code>

<code> </code><code>facter                        x86_64               </code><code>1</code><code>:</code><code>1.7</code><code>.</code><code>4</code><code>-</code><code>1</code><code>.el5                    puppet                         </code><code>87</code> <code>k</code>

<code> </code><code>libselinux-ruby               x86_64               </code><code>1.33</code><code>.</code><code>4</code><code>-</code><code>5.7</code><code>.el5                   rhel-base                      </code><code>61</code> <code>k</code>

<code> </code><code>ruby                          x86_64               </code><code>1.8</code><code>.</code><code>5</code><code>-</code><code>19</code><code>.el5_6.</code><code>1</code>                 <code>rhel-base                     </code><code>276</code> <code>k</code>

<code> </code><code>ruby-augeas                   x86_64               </code><code>0.4</code><code>.</code><code>1</code><code>-</code><code>2</code><code>.el5                      puppetlabs-deps                </code><code>22</code> <code>k</code>

<code> </code><code>ruby-libs                     x86_64               </code><code>1.8</code><code>.</code><code>5</code><code>-</code><code>19</code><code>.el5_6.</code><code>1</code>                 <code>rhel-base                     </code><code>1.6</code> <code>M</code>

<code> </code><code>ruby-shadow                   x86_64               </code><code>1.4</code><code>.</code><code>1</code><code>-</code><code>8</code><code>.el5                      puppetlabs-deps                </code><code>10</code> <code>k</code>

<code>Transaction Summary</code>

<code>Install       </code><code>8</code> <code>Package(s)</code>

<code>Upgrade       </code><code>0</code> <code>Package(s)</code>

<code>Total download size: </code><code>3.6</code> <code>M</code>

<code>Is </code><code>this</code> <code>ok [y/N]: y</code>

<code>Downloading Packages:</code>

<code>(</code><code>1</code><code>/</code><code>8</code><code>): ruby-shadow-</code><code>1.4</code><code>.</code><code>1</code><code>-</code><code>8</code><code>.el5.x86_64.rpm                                                         |  </code><code>10</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>(</code><code>2</code><code>/</code><code>8</code><code>): ruby-augeas-</code><code>0.4</code><code>.</code><code>1</code><code>-</code><code>2</code><code>.el5.x86_64.rpm                                                         |  </code><code>22</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>(</code><code>4</code><code>/</code><code>8</code><code>): augeas-libs-</code><code>0.10</code><code>.</code><code>0</code><code>-</code><code>4</code><code>.el5.x86_64.rpm                                                        | </code><code>376</code> <code>kB     </code><code>00</code><code>:</code><code>03</code>

<code>-------------------------------------------------------------------------------------------------------------------------</code>

<code>Total                                                                                    </code><code>823</code> <code>kB/s | </code><code>3.6</code> <code>MB     </code><code>00</code><code>:</code><code>04</code>

<code>warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 signature: NOKEY, key ID 4bd6ec30</code>

<code>puppetlabs-deps/gpgkey                                                                            | </code><code>1.7</code> <code>kB     </code><code>00</code><code>:</code><code>00</code>

<code>Importing GPG key </code><code>0x4BD6EC30</code> <code>"Puppet Labs Release Key (Puppet Labs Release Key) &lt;[email protected]&gt;"</code> <code>from /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs</code>

<code>Running rpm_check_debug</code>

<code>Running Transaction Test</code>

<code>Finished Transaction Test</code>

<code>Transaction Test Succeeded</code>

<code>Running Transaction</code>

<code>  </code><code>Installing     : ruby-libs                                                                                         </code><code>1</code><code>/</code><code>8</code>

<code>  </code><code>Installing     : ruby                                                                                              </code><code>2</code><code>/</code><code>8</code>

<code>  </code><code>Installing     : ruby-shadow                                                                                       </code><code>3</code><code>/</code><code>8</code>

<code>  </code><code>Installing     : augeas-libs                                                                                       </code><code>4</code><code>/</code><code>8</code>

<code>  </code><code>Installing     : ruby-augeas                                                                                       </code><code>5</code><code>/</code><code>8</code>

<code>  </code><code>Installing     : libselinux-ruby                                                                                   </code><code>6</code><code>/</code><code>8</code>

<code>  </code><code>Installing     : facter                                                                                            </code><code>7</code><code>/</code><code>8</code>

<code>  </code><code>Installing     : puppet                                                                                            </code><code>8</code><code>/</code><code>8</code>

<code>duration: </code><code>668</code><code>(ms)</code>

<code>Installed products updated.</code>

<code>Installed:</code>

<code>  </code><code>puppet.noarch </code><code>0</code><code>:</code><code>2.7</code><code>.</code><code>25</code><code>-</code><code>1</code><code>.el5                                                                                      </code>

<code>Dependency Installed:</code>

<code>  </code><code>augeas-libs.x86_64 </code><code>0</code><code>:</code><code>0.10</code><code>.</code><code>0</code><code>-</code><code>4</code><code>.el5     facter.x86_64 </code><code>1</code><code>:</code><code>1.7</code><code>.</code><code>4</code><code>-</code><code>1</code><code>.el5          libselinux-ruby.x86_64 </code><code>0</code><code>:</code><code>1.33</code><code>.</code><code>4</code><code>-</code><code>5.7</code><code>.el5</code>

<code>  </code><code>ruby.x86_64 </code><code>0</code><code>:</code><code>1.8</code><code>.</code><code>5</code><code>-</code><code>19</code><code>.el5_6.</code><code>1</code>        <code>ruby-augeas.x86_64 </code><code>0</code><code>:</code><code>0.4</code><code>.</code><code>1</code><code>-</code><code>2</code><code>.el5     ruby-libs.x86_64 </code><code>0</code><code>:</code><code>1.8</code><code>.</code><code>5</code><code>-</code><code>19</code><code>.el5_6.</code><code>1</code>   

<code>  </code><code>ruby-shadow.x86_64 </code><code>0</code><code>:</code><code>1.4</code><code>.</code><code>1</code><code>-</code><code>8</code><code>.el5</code>

<code>Complete!</code>

<code>[root@agent2 ~]# tree /</code><code>var</code><code>/cache/yum/puppetlabs-deps/packages/</code>

<code>/</code><code>var</code><code>/cache/yum/puppetlabs-deps/packages/</code>

<code>|-- augeas-libs-</code><code>0.10</code><code>.</code><code>0</code><code>-</code><code>4</code><code>.el5.x86_64.rpm</code>

<code>|-- ruby-augeas-</code><code>0.4</code><code>.</code><code>1</code><code>-</code><code>2</code><code>.el5.x86_64.rpm</code>

<code>`-- ruby-shadow-</code><code>1.4</code><code>.</code><code>1</code><code>-</code><code>8</code><code>.el5.x86_64.rpm</code>

<code>0</code> <code>directories, </code><code>3</code> <code>files</code>

<code>[root@agent2 ~]# createrepo --update /puppet/</code>

<code>6</code><code>/</code><code>6</code> <code>- packages/ruby-augeas-</code><code>0.4</code><code>.</code><code>1</code><code>-</code><code>2</code><code>.el5.x86_64.rpm                          </code>

通过以上操作基本上可以搞定

本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1354932,如需转载请自行联系原作者