Skip to content
Snippets Groups Projects
Commit 7b6b2981 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

added parameter selftest

parent 32a095a7
Branches
No related tags found
1 merge request!1Update docs
......@@ -14,6 +14,7 @@
# ----------------------------------------------------------------------
# 2021-02-02 <axel.hahn@iml.unibe.ch> first lines
# 2021-02-10 <axel.hahn@iml.unibe.ch> compare hashes, logging
# 2021-02-12 <axel.hahn@iml.unibe.ch> added self test
# ======================================================================
......@@ -23,10 +24,11 @@
#
# ----------------------------------------------------------------------
selfdir="$( dirname $0 )"
touchfile="${selfdir}/log/lastchange.txt"
# logfile="${selfdir}/log/certmanager-$( date +"%Y%m%d" ).log"
logfile="${selfdir}/log/certmanager.log"
touchfile="./log/lastchange.txt"
logfile="./log/certmanager.log"
csrfile="./templates/csr.txt"
line="_______________________________________________________________________________"
showdebug=1
......@@ -163,7 +165,7 @@ function _gencsr(){
rm -f $CM_filecnf $CM_filekey $CM_filecsr
mkdir -p "${CM_dircsr}" 2>/dev/null
cat ./templates/csr.txt \
cat $csrfile \
| sed "s#__FQDN__#$CM_fqdn#g" \
| sed "s#__ALTNAMES__#$altdns#g" \
> $CM_filecnf || exit 1
......@@ -343,6 +345,79 @@ function public_renew-all(){
}
# internal function; helper for selftest to handle a single selftest
# if a given command is successful it shows "OK" or "ERROR" followed
# by the label inparam 2.
# The value _iErrors will be incremented by 1 if an error occured.
# param string command to verify
# param string output label
function _selftestItem(){
local _check=$1
local _label=$2
local _status="OK:"
eval "$_check"
if [ $? -ne 0 ]; then
_status="ERROR: the check failed for the test of -"
_iErrors=$_iErrors+1
fi
echo "$_status $_label"
}
#
# list existing certs
# no params
function public_selftest(){
typeset -i _iErrors=0
echo
echo --- dependencies
_selftestItem "which openssl" "opemssl was found"
_selftestItem "which curl" "curl was found"
echo
echo --- acme.sh client
_selftestItem "ls -ld ${ACME}" "${ACME} exits"
_selftestItem "test -x ${ACME}" "${ACME} is executable"
echo
echo --- acme.sh installation \(may fail in future releases of acme.sh\)
_selftestItem "ls -ld ~/.acme.sh" "internal acme data were found = [acme.sh --install] was done"
_selftestItem "test -w ~/.acme.sh/" "it is writable"
echo
echo --- csr template
_selftestItem "ls -ld ${csrfile}" "csr base template exists"
_selftestItem "test -r ${csrfile}" "it is readable"
echo
echo --- output directory for csr and key
_selftestItem "ls -ld ${CM_dircsr}" "data dir for csr exists"
_selftestItem "test -w ${CM_dircsr}" "it is writable"
echo
echo --- output dir for centralized place of certificates
_selftestItem "ls -ld ${CM_diracme}" "central output dir for certificate data exists"
_selftestItem "test -w ${CM_diracme}" "it is writable"
echo
echo --- logs
_selftestItem "ls -ld ./log/" "Logdir exists"
_selftestItem "test -w" "Logdir is writable"
test -f $logfile && _selftestItem "test -w $logfile" "Logfile $logfile is writable"
test -f $touchfile && _selftestItem "test -w $touchfile" "Logfile $touchfile is writable"
echo
echo --- Errors: $_iErrors
test $_iErrors -eq 0 && echo "OK, this looks fine."
echo
exit $_iErrors
}
#
# list existing certs
# no params
......@@ -457,7 +532,13 @@ ACTIONs for ALL certs
renew-all
renew all certificates (fast mode - without --force)
and update files in ${CM_diracme}
It is useful for a cronjob
It is useful for a cronjob.
other ACTIONs
selftest
check of health with current setup and requirements.
This command is helpful for initial setups.
EOF
fi
......
......@@ -17,6 +17,8 @@ source: <https://git-repo.iml.unibe.ch/open-source/iml-certman>
* templates/csr.txt
* set location, company and department
Verify setup with ``./cm.sh selftest``
## Usage
```text
......@@ -74,6 +76,11 @@ ACTIONs for ALL certs
renew all certificates (fast mode - without --force)
and update files in ./certs
other ACTIONs
selftest
check of health with current setup and requirements.
This command is helpful for initial setups.
DEBUG: Using LE STAGE environment ...
DEBUG: You can test and mess around. Do not use certs in production.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment