Open pierrejego opened 8 months ago
Is your datadir uptodate ? especially these 2 lines: https://github.com/georchestra/datadir/blob/master/cas/config/cas.properties#L52-L53
oh, or maybe the cas.properties is templated into the ansible playbook ...
it is templated indeeed, but @landryb updated it last week: https://github.com/georchestra/ansible/blame/master/roles/georchestra/templates/cas/cas.properties.j2
I have the last version of playbook, I see the templating, but in the final datadir /etc/georchestra/cas/config neither cas.properties or log4j2.xml are updated. There are not coming from master datadir ( last two lines are missing and log4J2.xml point to /var/log.
Could they come from the debian package ?
the playbook deploys the datadir and the templates after installing the debian package, so if you run ansible-playbook -t config --diff
you should be able to see what is updated in the datadir
as for the empty /etc/georchestra/cas/saml
dir it should exist since it's in the datadir repo at https://github.com/georchestra/datadir/tree/master/cas/saml
i was wrong in my previous comment and misread yours.. after checking, the datadir is deployed/customized before deploying debian packages, which apparently overrides the customizations done by the playbook since config files are also shipped by the debian package. That is.. a definitely strange behaviour, because by default when left unattended/without user interaction (ie when run from ansible), dpkg shouldn't override already present files...
That is.. a definitely strange behaviour, because by default when left unattended/without user interaction (ie when run from ansible), dpkg shouldn't override already present files...
It gets back to one point brought during the codesprint: what about dropping the default /etc/georchestra/webapp
brought by the packages ? Maybe it would make more sense to have a sample configuration into /usr/share/doc/
?
can repro on a test instance, after removing georchestra-cas
and running ansible-playbook -t config
:
the config is customized:
root@bookworm:/etc/georchestra# git diff cas
diff --git a/cas/config/cas.properties b/cas/config/cas.properties
index 422537d..2c68f3b 100644
--- a/cas/config/cas.properties
+++ b/cas/config/cas.properties
@@ -1,4 +1,4 @@
-cas.server.name=https://georchestra.mydomain.org
+cas.server.name=https://georchestra.example.org
cas.server.prefix=${cas.server.name}/cas
logging.config=file:/etc/georchestra/cas/config/log4j2.xml
diff --git a/cas/config/log4j2.xml b/cas/config/log4j2.xml
index 604fc81..e201b49 100644
--- a/cas/config/log4j2.xml
+++ b/cas/config/log4j2.xml
@@ -2,7 +2,7 @@
<!-- Specify the refresh internal in seconds. -->
<Configuration monitorInterval="5" packages="org.apereo.cas.logging">
<Properties>
<Property name="cas.log.level">info</Property>
<Property name="spring.webflow.log.level">warn</Property>
<Property name="spring.security.log.level">info</Property>
installing `georchestra-cas` doesnt ask questions about config files:
root@bookworm:/etc/georchestra# apt install georchestra-cas Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: georchestra-cas 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/99.1 MB of archives. After this operation, 111 MB of additional disk space will be used. Selecting previously unselected package georchestra-cas. (Reading database ... 92678 files and directories currently installed.) Preparing to unpack .../georchestra-cas_6.3.7.4.master.202402080539~e5d7cd0_all.deb ... Unpacking georchestra-cas (6.3.7.4.master.202402080539~e5d7cd0) ... Setting up georchestra-cas (6.3.7.4.master.202402080539~e5d7cd0) ...
has overriden the customizations. iirc this doesnt happen with other packages... definitely strange.
root@bookworm:/etc/georchestra# git diff cas diff --git a/cas/config/cas.properties b/cas/config/cas.properties index 422537d..d7ca759 100644 --- a/cas/config/cas.properties +++ b/cas/config/cas.properties @@ -48,6 +48,3 @@ cas.authn.ldap[0].name= cas.authn.ldap[0].type=DIRECT cas.authn.ldap[0].dn-format=uid=%s,ou=users,dc=georchestra,dc=org cas.authn.oidc.jwks.jwks-file=file:///tmp/keystore.jwksdown
-cas.authn.saml-idp.core.entity-id=https://${FQDN}/idp -cas.authn.saml-idp.metadata.location=file:///tmp/
the way ansible installs the packages via apt, it should use --force-confdef
& --force-confold
as dpkg options, per https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html#parameter-dpkg_options - and to my understanding that explicitely says 'keep existing files'.
or i'm not reading https://dyn.manpages.debian.org/bookworm/dpkg/dpkg.1.en.html#force~2 right...
@pierrejego can you check what happens if you add:
diff --git a/roles/georchestra/tasks/wars.yml b/roles/georchestra/tasks/wars.yml
index b5d9f64..dcb816d 100644
--- a/roles/georchestra/tasks/wars.yml
+++ b/roles/georchestra/tasks/wars.yml
@@ -20,6 +20,7 @@
apt:
pkg: "{{ item.value.pkg }}"
update_cache: true
+ dpkg_options: force-confold
state: latest # noqa: package-latest
with_dict: "{{ georchestra_wars }}"
when: item.value.enabled and item.key != 'cadastrapp' and item.value.pkg is defined
That is.. a definitely strange behaviour, because by default when left unattended/without user interaction (ie when run from ansible), dpkg shouldn't override already present files...
It gets back to one point brought during the codesprint: what about dropping the default
/etc/georchestra/webapp
brought by the packages ? Maybe it would make more sense to have a sample configuration into/usr/share/doc/
?
that or /usr/share/doc/georchestra-datadir
? since we have /usr/share/doc/georchestra-*/copyright
...
that or /usr/share/doc/georchestra-datadir ? since we have /usr/share/doc/georchestra-*/copyright...
Maybe it would deserve a new package, then (I'd expect that in debian conventions, you would need to have /usr/share/doc/<packagename>
or so). It also reminds me that we never solved the issue with /etc/georchestra/default.properties (which package should take care of it ?)
When deploying playbook ( master ) on new Debian 12 via vagrant, proxycas webapp won't start cas-server application because a folder is missing.
I could not find any configuration link to /etc/cas/saml in datadir but in cas-server docs there is some touch : https://apereo.github.io/cas/7.0.x/installation/Configuring-SAML2-DynamicMetadata.html
Create empty folder /etc/cas/sam fix to problem but might not be the answer.