mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-07-27 11:46:44 +00:00
ceph: introduce '/etc/pve/ceph'
This commit adds the '/etc/pve/ceph' directory to our overall expected Ceph configuration. This directory is meant to store cluster-wide, non-private configuration files used by Ceph applications and services that are executed with lower privileges, such as 'ceph-crash.service'. The existence of the directory is now also checked for when checking whether Ceph is configured correctly. This makes it easier for our other tooling to rely on the directory's existence, reducing the number of otherwise needless frequent checking. * For new clusters: `pveceph init` now creates '/etc/pve/ceph' when called. * For existing clusters: The 'postinst' hook this commit adds ensures that '/etc/pve/ceph' is created when updating. Signed-off-by: Max Carrara <m.carrara@proxmox.com> Tested-by: Friedrich Weber <f.weber@proxmox.com>
This commit is contained in:
parent
0cc99840e0
commit
a51a28e3cd
@ -192,6 +192,11 @@ __PACKAGE__->register_method ({
|
|||||||
PVE::Ceph::Tools::check_ceph_installed('ceph_bin');
|
PVE::Ceph::Tools::check_ceph_installed('ceph_bin');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $pve_ceph_cfgdir = PVE::Ceph::Tools::get_config('pve_ceph_cfgdir');
|
||||||
|
if (! -d $pve_ceph_cfgdir) {
|
||||||
|
File::Path::make_path($pve_ceph_cfgdir);
|
||||||
|
}
|
||||||
|
|
||||||
my $auth = $param->{disable_cephx} ? 'none' : 'cephx';
|
my $auth = $param->{disable_cephx} ? 'none' : 'cephx';
|
||||||
|
|
||||||
# simply load old config if it already exists
|
# simply load old config if it already exists
|
||||||
|
@ -18,6 +18,7 @@ my $ccname = 'ceph'; # ceph cluster name
|
|||||||
my $ceph_cfgdir = "/etc/ceph";
|
my $ceph_cfgdir = "/etc/ceph";
|
||||||
my $pve_ceph_cfgpath = "/etc/pve/$ccname.conf";
|
my $pve_ceph_cfgpath = "/etc/pve/$ccname.conf";
|
||||||
my $ceph_cfgpath = "$ceph_cfgdir/$ccname.conf";
|
my $ceph_cfgpath = "$ceph_cfgdir/$ccname.conf";
|
||||||
|
my $pve_ceph_cfgdir = "/etc/pve/ceph";
|
||||||
|
|
||||||
my $pve_mon_key_path = "/etc/pve/priv/$ccname.mon.keyring";
|
my $pve_mon_key_path = "/etc/pve/priv/$ccname.mon.keyring";
|
||||||
my $pve_ckeyring_path = "/etc/pve/priv/$ccname.client.admin.keyring";
|
my $pve_ckeyring_path = "/etc/pve/priv/$ccname.client.admin.keyring";
|
||||||
@ -37,6 +38,7 @@ my $ceph_service = {
|
|||||||
|
|
||||||
my $config_values = {
|
my $config_values = {
|
||||||
ccname => $ccname,
|
ccname => $ccname,
|
||||||
|
pve_ceph_cfgdir => $pve_ceph_cfgdir,
|
||||||
ceph_mds_data_dir => $ceph_mds_data_dir,
|
ceph_mds_data_dir => $ceph_mds_data_dir,
|
||||||
long_rados_timeout => 60,
|
long_rados_timeout => 60,
|
||||||
};
|
};
|
||||||
@ -186,8 +188,14 @@ sub check_ceph_inited {
|
|||||||
|
|
||||||
return undef if !check_ceph_installed('ceph_mon', $noerr);
|
return undef if !check_ceph_installed('ceph_mon', $noerr);
|
||||||
|
|
||||||
if (! -f $pve_ceph_cfgpath) {
|
my @errors;
|
||||||
die "pveceph configuration not initialized\n" if !$noerr;
|
|
||||||
|
push(@errors, "missing '$pve_ceph_cfgpath'") if ! -f $pve_ceph_cfgpath;
|
||||||
|
push(@errors, "missing '$pve_ceph_cfgdir'") if ! -d $pve_ceph_cfgdir;
|
||||||
|
|
||||||
|
if (@errors) {
|
||||||
|
my $err = 'pveceph configuration not initialized - ' . join(', ', @errors) . "\n";
|
||||||
|
die $err if !$noerr;
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
debian/postinst
vendored
12
debian/postinst
vendored
@ -80,6 +80,14 @@ EOF
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update_ceph_conf() {
|
||||||
|
CEPH_CONF_DIR='/etc/pve/ceph'
|
||||||
|
|
||||||
|
if test ! -d "${CEPH_CONF_DIR}"; then
|
||||||
|
mkdir -p "${CEPH_CONF_DIR}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
migrate_apt_auth_conf() {
|
migrate_apt_auth_conf() {
|
||||||
output=""
|
output=""
|
||||||
removed=""
|
removed=""
|
||||||
@ -190,6 +198,10 @@ case "$1" in
|
|||||||
|
|
||||||
set_lvm_conf
|
set_lvm_conf
|
||||||
|
|
||||||
|
if test -n "$2" && dpkg --compare-versions "$2" 'lt' '0.0.0'; then
|
||||||
|
update_ceph_conf
|
||||||
|
fi
|
||||||
|
|
||||||
if test ! -e /proxmox_install_mode; then
|
if test ! -e /proxmox_install_mode; then
|
||||||
# modeled after code generated by dh_start
|
# modeled after code generated by dh_start
|
||||||
for unit in ${UNITS}; do
|
for unit in ${UNITS}; do
|
||||||
|
Loading…
Reference in New Issue
Block a user