Support EL, Fedora and (open)SuSE repo
- Recipe is now ceph::repo - For EL, add EPEL repository for dependencies by default. Deactivable by using el_add_epel: false under ceph: {} in the chef environment. - Handle package names difference between EL/FC/SuSE and Debian. Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
This commit is contained in:
parent
14dd386a49
commit
57c6e08276
@ -1,3 +1,4 @@
|
||||
default['ceph']['branch'] = "stable" # Can be stable, testing or dev.
|
||||
# Major release version to install or gitbuilder branch
|
||||
default['ceph']['version'] = "bobtail"
|
||||
default['ceph']['el_add_epel'] = true
|
@ -4,7 +4,7 @@ case node['ceph']['branch']
|
||||
when "stable"
|
||||
apt_repository "ceph-stable" do
|
||||
repo_name "ceph"
|
||||
uri "http://www.ceph.com/debian-#{node['ceph']['version']}/"
|
||||
uri "http://ceph.com/debian-#{node['ceph']['version']}/"
|
||||
distribution node['lsb']['codename']
|
||||
components ["main"]
|
||||
key "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc"
|
||||
@ -26,3 +26,4 @@ when "dev"
|
||||
key "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -16,18 +16,34 @@
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
packages = %w{
|
||||
ceph
|
||||
ceph-common
|
||||
}
|
||||
|
||||
if node['ceph']['install_debug']
|
||||
packages_dbg = %w{
|
||||
ceph-dbg
|
||||
ceph-common-dbg
|
||||
packages = []
|
||||
|
||||
case node['platform_family']
|
||||
when "debian"
|
||||
packages = %w{
|
||||
ceph
|
||||
ceph-common
|
||||
}
|
||||
packages += packages_dbg
|
||||
|
||||
if node['ceph']['install_debug']
|
||||
packages_dbg = %w{
|
||||
ceph-dbg
|
||||
ceph-common-dbg
|
||||
}
|
||||
packages += packages_dbg
|
||||
end
|
||||
when "rhel", "fedora"
|
||||
packages = %w{
|
||||
ceph
|
||||
}
|
||||
|
||||
if node['ceph']['install_debug']
|
||||
packages_dbg = %w{
|
||||
ceph-debug
|
||||
}
|
||||
packages += packages_dbg
|
||||
end
|
||||
end
|
||||
|
||||
packages.each do |pkg|
|
||||
|
8
recipes/repo.rb
Normal file
8
recipes/repo.rb
Normal file
@ -0,0 +1,8 @@
|
||||
case node['platform_family']
|
||||
when "debian"
|
||||
include_recipe "ceph::apt"
|
||||
when "rhel", "suse"
|
||||
include_recipe "ceph::rpm"
|
||||
else
|
||||
raise "not supported"
|
||||
end
|
47
recipes/rpm.rb
Normal file
47
recipes/rpm.rb
Normal file
@ -0,0 +1,47 @@
|
||||
case node['platform_family']
|
||||
when "rhel"
|
||||
version = %x[ cat /etc/redhat-release | awk '{print $3}' | awk -F. '{print $1}' ].chomp
|
||||
release = "el" + version
|
||||
if node['ceph']['el_add_epel'] == true
|
||||
# We need to do this since the EPEL
|
||||
# version might change
|
||||
epel_package = %x[ curl -s http://dl.fedoraproject.org/pub/epel/fullfilelist | grep ^#{version}/#{node['kernel']['machine']}/epel-release ].chomp
|
||||
system "rpm -U http://dl.fedoraproject.org/pub/epel/#{epel_package}"
|
||||
end
|
||||
when "fedora"
|
||||
version = %x[ cat /etc/fedora-release | awk '{print $3}' ].chomp
|
||||
release = "fc" + version
|
||||
when "suse"
|
||||
suse = %x[ head -n1 /etc/SuSE-release| awk '{print $1}' ].chomp.downcase #can be suse or opensuse
|
||||
version = %x[ grep VERSION /etc/SuSE-release | awk -F'= ' '{print $2}' ].chomp
|
||||
release = suse + version
|
||||
end
|
||||
|
||||
end_path = "/#{release}/x86_64/ceph-release-1-0.#{release}.noarch.rpm"
|
||||
case node['ceph']['branch']
|
||||
when "stable"
|
||||
path = "http://ceph.com/rpm-#{node['ceph']['version']}" + end_path
|
||||
system "rpm -U #{path}"
|
||||
when "testing"
|
||||
path = "http://ceph.com/rpm-testing" + end_path
|
||||
system "rpm -U #{path}"
|
||||
when "dev"
|
||||
if node['platform'] == "centos"
|
||||
baseurl="http://gitbuilder.ceph.com/ceph-rpm-centos#{version}-x86_64-basic/ref/#{node['ceph']['version']}/x86_64/"
|
||||
elsif node['platform'] == "fedora"
|
||||
baseurl="http://gitbuilder.ceph.com/ceph-rpm-#{release}-x86_64-basic/ref/#{node['ceph']['version']}/RPMS/x86_64/"
|
||||
else
|
||||
raise "repository not available for your distribution"
|
||||
end
|
||||
# Instead of using the yum cookbook,
|
||||
# we do it this way. It avoids a dependency
|
||||
system "curl -s 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc' > /etc/pki/rpm-gpg/RPM-GPG-KEY-CEPH"
|
||||
system "cat > /etc/yum.repos.d/ceph.repo << EOF\n" \
|
||||
"[ceph]\n" \
|
||||
"name=Ceph\n" \
|
||||
"baseurl=#{baseurl}\n" \
|
||||
"enabled=1\n" \
|
||||
"gpgcheck=1\n" \
|
||||
"gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CEPH\n" \
|
||||
"EOF\n"
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user