Hey folks,
I have a problem with the definition of a variable of type slist in
CFEngine on
# uname -a ; cat /etc/redhat-release
Linux policyhub.example.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22
21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
CentOS Linux release 7.4.1708 (Core)
I'm not sure if its valid to ask CFEngine questions on this mailing
list, but as far as I'm running on CentOS I hope that it is okay.
I'm logged in as user
# id
uid=0(root) gid=0(root) Gruppen=0(root)
Kontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
and working on directory
# pwd
/var/cfengine/inputs
with software
# cf-agent -V
CFEngine Core 3.10.2
and the configuration file
# cat ./info.cf
bundle agent info
{
vars:
any::
"info_list" slist => {
"includes.dir ............... = $(includes.dir)",
"sys.arch ................... = $(sys.arch)",
"sys.bindir ................. = $(sys.bindir)",
"sys.cdate .................. = $(sys.cdate)",
"sys.cf_promises ............ = $(sys.cf_promises)",
"sys.cf_version ............. = $(sys.cf_version)",
"sys.cf_version_major ....... = $(sys.cf_version_major)",
"sys.cf_version_minor ....... = $(sys.cf_version_minor)",
"sys.cf_version_patch ....... = $(sys.cf_version_patch)",
"sys.class .................. = $(sys.class)",
"sys.cpus ................... = $(sys.cpus)",
"sys.crontab ................ = $(sys.crontab)",
"sys.date ................... = $(sys.date)",
"sys.doc_root ............... = $(sys.doc_root)",
"sys.domain ................. = $(sys.domain)",
"sys.enterprise_version ..... = $(sys.enterprise_version)",
"sys.expires ................ = $(sys.expires)",
"sys.exports ................ = $(sys.exports)",
"sys.failsafe_policy_path ... = $(sys.failsafe_policy_path)",
"sys.flavor ................. = $(sys.flavor)",
"sys.flavour ................ = $(sys.flavour)",
"sys.fqhost ................. = $(sys.fqhost)",
"sys.fstab .................. = $(sys.fstab)",
"sys.hardware_addresses ..... = $(sys.hardware_addresses)",
"sys.host ................... = $(sys.host)",
"sys.inet ................... = $(sys.inet)",
"sys.inputdir ............... = $(sys.inputdir)",
"sys.interface .............. = $(sys.interface)",
"sys.interfaces ............. = $(sys.interfaces)",
"sys.interfaces_flags ....... = $(sys.interfaces_flags)",
"sys.ip_addresses ........... = $(sys.ip_addresses)",
"sys.ip2iface ............... = $(sys.ip2iface)",
"sys.ipv4 ................... = $(sys.ipv4)",
"sys.key_digest ............. = $(sys.key_digest)",
"sys.last_policy_update ..... = $(sys.last_policy_update)",
"sys.libdir ................. = $(sys.libdir)",
"sys.local_libdir ........... = $(sys.local_libdir)",
"sys.logdir ................. = $(sys.logdir)",
"sys.license_owner .......... = $(sys.license_owner)",
"sys.licenses_granted ....... = $(sys.licenses_granted)",
"sys.long_arch .............. = $(sys.long_arch)",
"sys.maildir ................ = $(sys.maildir)",
"sys.masterdir .............. = $(sys.masterdir)",
"sys.os ..................... = $(sys.os)",
"sys.ostype ................. = $(sys.ostype)",
"sys.piddir ................. = $(sys.piddir)",
"sys.policy_hub ............. = $(sys.policy_hub)",
"sys.policy_hub_port ........ = $(sys.policy_hub_port)",
"sys.release ................ = $(sys.release)",
"sys.resolv ................. = $(sys.resolv)",
"sys.statedir ............... = $(sys.statedir)",
"sys.sysday ................. = $(sys.sysday)",
"sys.systime ................ = $(sys.systime)",
"sys.update_policy_path ..... = $(sys.update_policy_path)",
"sys.uptime ................. = $(sys.uptime)",
"sys.user_data .............. = $(sys.user_data)",
"sys.uqhost ................. = $(sys.uqhost)",
"sys.version ................ = $(sys.version)",
"sys.windir ................. = $(sys.windir)",
"sys.winprogdir ............. = $(sys.winprogdir)",
"sys.winprogdir86 ........... = $(sys.winprogdir86)",
"sys.winsysdir .............. = $(sys.winsysdir)",
"sys.workdir ................ = $(sys.workdir)",
"... BEGIN big shit ...............",
# "sys.inet6 .................. = $(sys.inet6)",
# "sys.interfaces_data ........ = $(sys.interfaces_data)",
"... END big shit ...............",
};
reports:
any::
"r1: $(info.info_list)";
"r2: sys.inet6 .................. = $(sys.inet6)";
"r3: sys.interfaces_data ........ = $(sys.interfaces_data)";
"r4: holleri di dudeldoe";
}
The service cfengine3.service is inactive at the moment:
# systemctl is-active cfengine3.service
inactive
I have a problem with the definition of the stringlist/slist
"info_list". In some cases it becomes some kind of
"undefined" or at
least I'm not able to print it out in a report (in "r1:"). In the
configuration file above I marked some lines with "BEGIN/END big
shit".
Between the BEGIN/END I commented out two lines. If I "run" with that
configuration file I see the reports "r1:" and "r4:" but not
"r2:" and
"r3:". It's not clear to me why I don't see reports
"r2:" and "r3:", but
I'm interested in the value of $(info.info_list)" in "r1:", I
only have
"r2:" and "r3:" here to maybe help to localize the problem
which is
described later. Definition of "info_list" works fine for now:
# cf-agent -IK --file ./info.cf --bundlesequence info
info: Using command line specified bundlesequence
R: r1: includes.dir ............... = $(includes.dir)
R: r1: sys.arch ................... = x86_64
R: r1: sys.bindir ................. = /var/cfengine/bin
R: r1: sys.cdate .................. = Thu_Jul_26_16_09_20_2018
R: r1: sys.cf_promises ............ = "/var/cfengine/bin/cf-promises"
R: r1: sys.cf_version ............. = 3.10.2
R: r1: sys.cf_version_major ....... = 3
R: r1: sys.cf_version_minor ....... = 10
R: r1: sys.cf_version_patch ....... = 2
R: r1: sys.class .................. = linux
R: r1: sys.cpus ................... = 1
R: r1: sys.crontab ................ = /var/spool/cron/root
R: r1: sys.date ................... = Thu Jul 26 16:09:20 2018
R: r1: sys.doc_root ............... = /var/www/html
R: r1: sys.domain ................. = example.com
R: r1: sys.enterprise_version ..... = $(sys.enterprise_version)
R: r1: sys.expires ................ = $(sys.expires)
R: r1: sys.exports ................ = /etc/exports
R: r1: sys.failsafe_policy_path ... = /var/cfengine/inputs/failsafe.cf
R: r1: sys.flavor ................. = centos_7
R: r1: sys.flavour ................ = centos_7
R: r1: sys.fqhost ................. = policyhub.example.com
R: r1: sys.fstab .................. = /etc/fstab
R: r1: sys.hardware_addresses ..... = aa:aa:aa:aa:aa:aa
R: r1: sys.host ................... = policyhub.example.com
R: r1: sys.inet ................... = 37.187.93.254
R: r1: sys.inputdir ............... = /var/cfengine/inputs
R: r1: sys.interface .............. = eth0
R: r1: sys.interfaces ............. = eth0
R: r1: sys.interfaces_flags ....... = $(sys.interfaces_flags)
R: r1: sys.ip_addresses ........... = 11.22.33.44
R: r1: sys.ip2iface ............... = $(sys.ip2iface)
R: r1: sys.ipv4 ................... = 11.22.33.44
R: r1: sys.key_digest ............. = MD5=12345678123456781234567812345678
R: r1: sys.last_policy_update ..... = Thu Jul 26 14:45:33 2018
R: r1: sys.libdir ................. = /var/cfengine/inputs/lib
R: r1: sys.local_libdir ........... = lib
R: r1: sys.logdir ................. = /var/cfengine
R: r1: sys.license_owner .......... = $(sys.license_owner)
R: r1: sys.licenses_granted ....... = $(sys.licenses_granted)
R: r1: sys.long_arch .............. =
linux_x86_64_3_10_0_693_el7_x86_64__1_SMP_Tue_Aug_22_21_09_27_UTC_2017
R: r1: sys.maildir ................ = /var/spool/mail
R: r1: sys.masterdir .............. = /var/cfengine/masterfiles
R: r1: sys.os ..................... = linux
R: r1: sys.ostype ................. = linux_x86_64
R: r1: sys.piddir ................. = /var/cfengine
R: r1: sys.policy_hub ............. = 11.22.33.44
R: r1: sys.policy_hub_port ........ = 5308
R: r1: sys.release ................ = 3.10.0-693.el7.x86_64
R: r1: sys.resolv ................. = /etc/resolv.conf
R: r1: sys.statedir ............... = /var/cfengine/state
R: r1: sys.sysday ................. = 17738
R: r1: sys.systime ................ = 1532614160
R: r1: sys.update_policy_path ..... = /var/cfengine/inputs/update.cf
R: r1: sys.uptime ................. = 14209
R: r1: sys.user_data .............. = 0
R: r1: sys.uqhost ................. = policyhub
R: r1: sys.version ................ = #1 SMP Tue Aug 22 21:09:27 UTC 2017
R: r1: sys.windir ................. = $(sys.windir)
R: r1: sys.winprogdir ............. = $(sys.winprogdir)
R: r1: sys.winprogdir86 ........... = $(sys.winprogdir86)
R: r1: sys.winsysdir .............. = $(sys.winsysdir)
R: r1: sys.workdir ................ = /var/cfengine
R: r1: ... BEGIN big shit ...............
R: r1: ... END big shit ...............
R: r4: holleri di dudeldoe
"r2:" and "r3:" are missing, but thats not a problem for me.
Now I
comment in one of those two lines, in this case th first one:
# cat ./info.cf
bundle agent info
{
vars:
any::
"info_list" slist => {
"includes.dir ............... = $(includes.dir)",
"sys.arch ................... = $(sys.arch)",
"sys.bindir ................. = $(sys.bindir)",
"sys.cdate .................. = $(sys.cdate)",
"sys.cf_promises ............ = $(sys.cf_promises)",
"sys.cf_version ............. = $(sys.cf_version)",
"sys.cf_version_major ....... = $(sys.cf_version_major)",
"sys.cf_version_minor ....... = $(sys.cf_version_minor)",
"sys.cf_version_patch ....... = $(sys.cf_version_patch)",
"sys.class .................. = $(sys.class)",
"sys.cpus ................... = $(sys.cpus)",
"sys.crontab ................ = $(sys.crontab)",
"sys.date ................... = $(sys.date)",
"sys.doc_root ............... = $(sys.doc_root)",
"sys.domain ................. = $(sys.domain)",
"sys.enterprise_version ..... = $(sys.enterprise_version)",
"sys.expires ................ = $(sys.expires)",
"sys.exports ................ = $(sys.exports)",
"sys.failsafe_policy_path ... = $(sys.failsafe_policy_path)",
"sys.flavor ................. = $(sys.flavor)",
"sys.flavour ................ = $(sys.flavour)",
"sys.fqhost ................. = $(sys.fqhost)",
"sys.fstab .................. = $(sys.fstab)",
"sys.hardware_addresses ..... = $(sys.hardware_addresses)",
"sys.host ................... = $(sys.host)",
"sys.inet ................... = $(sys.inet)",
"sys.inputdir ............... = $(sys.inputdir)",
"sys.interface .............. = $(sys.interface)",
"sys.interfaces ............. = $(sys.interfaces)",
"sys.interfaces_flags ....... = $(sys.interfaces_flags)",
"sys.ip_addresses ........... = $(sys.ip_addresses)",
"sys.ip2iface ............... = $(sys.ip2iface)",
"sys.ipv4 ................... = $(sys.ipv4)",
"sys.key_digest ............. = $(sys.key_digest)",
"sys.last_policy_update ..... = $(sys.last_policy_update)",
"sys.libdir ................. = $(sys.libdir)",
"sys.local_libdir ........... = $(sys.local_libdir)",
"sys.logdir ................. = $(sys.logdir)",
"sys.license_owner .......... = $(sys.license_owner)",
"sys.licenses_granted ....... = $(sys.licenses_granted)",
"sys.long_arch .............. = $(sys.long_arch)",
"sys.maildir ................ = $(sys.maildir)",
"sys.masterdir .............. = $(sys.masterdir)",
"sys.os ..................... = $(sys.os)",
"sys.ostype ................. = $(sys.ostype)",
"sys.piddir ................. = $(sys.piddir)",
"sys.policy_hub ............. = $(sys.policy_hub)",
"sys.policy_hub_port ........ = $(sys.policy_hub_port)",
"sys.release ................ = $(sys.release)",
"sys.resolv ................. = $(sys.resolv)",
"sys.statedir ............... = $(sys.statedir)",
"sys.sysday ................. = $(sys.sysday)",
"sys.systime ................ = $(sys.systime)",
"sys.update_policy_path ..... = $(sys.update_policy_path)",
"sys.uptime ................. = $(sys.uptime)",
"sys.user_data .............. = $(sys.user_data)",
"sys.uqhost ................. = $(sys.uqhost)",
"sys.version ................ = $(sys.version)",
"sys.windir ................. = $(sys.windir)",
"sys.winprogdir ............. = $(sys.winprogdir)",
"sys.winprogdir86 ........... = $(sys.winprogdir86)",
"sys.winsysdir .............. = $(sys.winsysdir)",
"sys.workdir ................ = $(sys.workdir)",
"... BEGIN big shit ...............",
"sys.inet6 .................. = $(sys.inet6)",
# "sys.interfaces_data ........ = $(sys.interfaces_data)",
"... END big shit ...............",
};
reports:
any::
"r1: $(info.info_list)";
"r2: sys.inet6 .................. = $(sys.inet6)";
"r3: sys.interfaces_data ........ = $(sys.interfaces_data)";
"r4: holleri di dudeldoe";
}
I "run" again with that configuration file and in report
"r1:" I can see
that now the stringlist/slist "info_list" seems to be undefined and
report "r1:" is empty and reports "r2:" and "r3:"
are still missing:
# cf-agent -IK --file ./info.cf --bundlesequence info
info: Using command line specified bundlesequence
R: r1: $(info.info_list)
R: r4: holleri di dudeldoe
My problem ist NOT that the reports "r2:" and "r3:" are not
printed, my
problem ist, that in some cases the slist is undefined. I'm using that
slist to collect some system info and then printing out the report and
it would NOT be a problem if some system informations were missing but
it IS a problem that in some cases the whole slist becomes undefined and
in that situation I receive a completly empty report "r1: ".
I would like to understand what circumstances lead to the slist be
undefined and how I can prevent this.
Thanks in advance.
Regards, Meikel
Alexander Dalloz
2018-Jul-26 16:58 UTC
[CentOS] Problem with definition of slist in CFEngine
Am 26.07.2018 um 17:11 schrieb Meikel:> # uname -a ; cat /etc/redhat-release > Linux policyhub.example.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 > 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux > CentOS Linux release 7.4.1708 (Core)Any really good reason not to update since nearly 1 year? Alexander
On Thu, 26 Jul 2018, Meikel wrote:> Hey folks, > > I have a problem with the definition of a variable of type slist in CFEngine > on > > # uname -a ; cat /etc/redhat-release > Linux policyhub.example.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 > UTC 2017 x86_64 x86_64 x86_64 GNU/Linux > CentOS Linux release 7.4.1708 (Core) > > I'm not sure if its valid to ask CFEngine questions on this mailing list, but > as far as I'm running on CentOS I hope that it is okay. > > I'm logged in as user > > # id > uid=0(root) gid=0(root) Gruppen=0(root) > Kontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 > > and working on directory > > # pwd > /var/cfengine/inputs > > with software > > # cf-agent -V > CFEngine Core 3.10.2 > > and the configuration file > > # cat ./info.cf > bundle agent info > { > vars: > any:: > "info_list" slist => { > "includes.dir ............... = $(includes.dir)", > "sys.arch ................... = $(sys.arch)", > "sys.bindir ................. = $(sys.bindir)", > "sys.cdate .................. = $(sys.cdate)", > "sys.cf_promises ............ = $(sys.cf_promises)", > "sys.cf_version ............. = $(sys.cf_version)", > "sys.cf_version_major ....... = $(sys.cf_version_major)", > "sys.cf_version_minor ....... = $(sys.cf_version_minor)", > "sys.cf_version_patch ....... = $(sys.cf_version_patch)", > "sys.class .................. = $(sys.class)", > "sys.cpus ................... = $(sys.cpus)", > "sys.crontab ................ = $(sys.crontab)", > "sys.date ................... = $(sys.date)", > "sys.doc_root ............... = $(sys.doc_root)", > "sys.domain ................. = $(sys.domain)", > "sys.enterprise_version ..... = $(sys.enterprise_version)", > "sys.expires ................ = $(sys.expires)", > "sys.exports ................ = $(sys.exports)", > "sys.failsafe_policy_path ... = $(sys.failsafe_policy_path)", > "sys.flavor ................. = $(sys.flavor)", > "sys.flavour ................ = $(sys.flavour)", > "sys.fqhost ................. = $(sys.fqhost)", > "sys.fstab .................. = $(sys.fstab)", > "sys.hardware_addresses ..... = $(sys.hardware_addresses)", > "sys.host ................... = $(sys.host)", > "sys.inet ................... = $(sys.inet)", > "sys.inputdir ............... = $(sys.inputdir)", > "sys.interface .............. = $(sys.interface)", > "sys.interfaces ............. = $(sys.interfaces)", > "sys.interfaces_flags ....... = $(sys.interfaces_flags)", > "sys.ip_addresses ........... = $(sys.ip_addresses)", > "sys.ip2iface ............... = $(sys.ip2iface)", > "sys.ipv4 ................... = $(sys.ipv4)", > "sys.key_digest ............. = $(sys.key_digest)", > "sys.last_policy_update ..... = $(sys.last_policy_update)", > "sys.libdir ................. = $(sys.libdir)", > "sys.local_libdir ........... = $(sys.local_libdir)", > "sys.logdir ................. = $(sys.logdir)", > "sys.license_owner .......... = $(sys.license_owner)", > "sys.licenses_granted ....... = $(sys.licenses_granted)", > "sys.long_arch .............. = $(sys.long_arch)", > "sys.maildir ................ = $(sys.maildir)", > "sys.masterdir .............. = $(sys.masterdir)", > "sys.os ..................... = $(sys.os)", > "sys.ostype ................. = $(sys.ostype)", > "sys.piddir ................. = $(sys.piddir)", > "sys.policy_hub ............. = $(sys.policy_hub)", > "sys.policy_hub_port ........ = $(sys.policy_hub_port)", > "sys.release ................ = $(sys.release)", > "sys.resolv ................. = $(sys.resolv)", > "sys.statedir ............... = $(sys.statedir)", > "sys.sysday ................. = $(sys.sysday)", > "sys.systime ................ = $(sys.systime)", > "sys.update_policy_path ..... = $(sys.update_policy_path)", > "sys.uptime ................. = $(sys.uptime)", > "sys.user_data .............. = $(sys.user_data)", > "sys.uqhost ................. = $(sys.uqhost)", > "sys.version ................ = $(sys.version)", > "sys.windir ................. = $(sys.windir)", > "sys.winprogdir ............. = $(sys.winprogdir)", > "sys.winprogdir86 ........... = $(sys.winprogdir86)", > "sys.winsysdir .............. = $(sys.winsysdir)", > "sys.workdir ................ = $(sys.workdir)", > "... BEGIN big shit ...............", > # "sys.inet6 .................. = $(sys.inet6)", > # "sys.interfaces_data ........ = $(sys.interfaces_data)", > "... END big shit ...............", > }; > > reports: > any:: > "r1: $(info.info_list)"; > "r2: sys.inet6 .................. = $(sys.inet6)"; > "r3: sys.interfaces_data ........ = $(sys.interfaces_data)"; > "r4: holleri di dudeldoe"; > > } > > The service cfengine3.service is inactive at the moment: > > # systemctl is-active cfengine3.service > inactive > > I have a problem with the definition of the stringlist/slist "info_list". In > some cases it becomes some kind of "undefined" or at least I'm not able to > print it out in a report (in "r1:").Two related questions: Is there any chance that some elements of your info_list become larger than 4K size limit cfengine places on scalar variables? Similarly, I wonder if the 4K size limit comes into play when a list is interpolated into a string, as in your r1 report. I'm merely speculating; I don't know one way or the other. Plus, I've never tried defining a slist with a comma after the final element. I assume that works for you, but I'll just note it for the record. -- Paul Heinlein heinlein at madboa.com 45?38' N, 122?6' W
Hi folks and Alexander. > Any really good reason not to update since nearly 1 year? There are two reasons, but maybe they are not "good" reasons :-( First reason is that I'm an admin-beginner with low skills and missing practice. Second reason is that the system is brand new but from an 7.4-based DVD. It is installed via kickstart and CFEngine from an DVD I created based on 7.4. I'm bootstrapping that machine in an environment where it's hard for me to have services like DHCP (and TFTP and things like that) available, I'm not able to receive a kickstart file over network, so I have the network settings inside the kickstart file which is inside (my self-apckaged) ISO image. I'm too lazy to create an new kickstart DVD based on 7.5. I'm getting rid of the system and reinstalling-kickstarting-cfengining it every some days. It's for learning purposes. Maybe I'll create a 7.5 based ISO image and also add CFEngine rules to update the system (I don't have a strategie for the task of updating the system at the moment). Regards, Meikel Am 26.07.2018 um 18:58 schrieb Alexander Dalloz:> Am 26.07.2018 um 17:11 schrieb Meikel: >> # uname -a ; cat /etc/redhat-release >> Linux policyhub.example.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 >> 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux >> CentOS Linux release 7.4.1708 (Core) > > Any really good reason not to update since nearly 1 year? > > Alexander > > _______________________________________________ > CentOS mailing list > CentOS at centos.org > https://lists.centos.org/mailman/listinfo/centos
Hi folks and Paul.
> Is there any chance that some elements of your info_list become larger
> than 4K size limit cfengine places on scalar variables?
Mayne the 4K limit ist not the problem here. I did some "shortcutting"
and added one more "undefined" variable aaa.bbb.ccc:
# cat ./info.cf
bundle agent info
{
vars:
any::
"info_list" slist => {
"aaa.bbb.ccc ................ = $(aaa.bbb.ccc)",
"includes.dir ............... = $(includes.dir)",
"sys.arch ................... = $(sys.arch)",
"sys.bindir ................. = $(sys.bindir)",
"... BEGIN big shit ...............",
# "sys.inet6 .................. = $(sys.inet6)",
# "sys.interfaces_data ........ = $(sys.interfaces_data)",
"... END big shit ..............."
};
reports:
any::
"r1: $(info.info_list)";
"r2: sys.inet6 .................. = $(sys.inet6)";
"r3: sys.interfaces_data ........ = $(sys.interfaces_data)";
"r4: holleri di dudeldoe";
"r5: aaa.bbb.ccc ................ = $(aaa.bbb.ccc)";
}
Variables aaa.bbb.ccc and includes.dir are not defined and do not cause
any problems:
# cf-agent -IK --file ./info.cf --bundlesequence info
info: Using command line specified bundlesequence
R: r1: aaa.bbb.ccc ................ = $(aaa.bbb.ccc)
R: r1: includes.dir ............... = $(includes.dir)
R: r1: sys.arch ................... = x86_64
R: r1: sys.bindir ................. = /var/cfengine/bin
R: r1: ... BEGIN big shit ...............
R: r1: ... END big shit ...............
R: r4: holleri di dudeldoe
R: r5: aaa.bbb.ccc ................ = $(aaa.bbb.ccc)
Adding sys.inet6 leads to the problem:
# cat ./info.cf
bundle agent info
{
vars:
any::
"info_list" slist => {
"aaa.bbb.ccc ................ = $(aaa.bbb.ccc)",
"includes.dir ............... = $(includes.dir)",
"sys.arch ................... = $(sys.arch)",
"sys.bindir ................. = $(sys.bindir)",
"... BEGIN big shit ...............",
"sys.inet6 .................. = $(sys.inet6)",
# "sys.interfaces_data ........ = $(sys.interfaces_data)",
"... END big shit ..............."
};
reports:
any::
"r1: $(info.info_list)";
"r2: sys.inet6 .................. = $(sys.inet6)";
"r3: sys.interfaces_data ........ = $(sys.interfaces_data)";
"r4: holleri di dudeldoe";
"r5: aaa.bbb.ccc ................ = $(aaa.bbb.ccc)";
}
]# cf-agent -IK --file ./info.cf --bundlesequence info
info: Using command line specified bundlesequence
R: r1: $(info.info_list)
R: r4: holleri di dudeldoe
R: r5: aaa.bbb.ccc ................ = $(aaa.bbb.ccc)
Why is "r5:" shown but not "r2:" and "r3:"? Why
isn't it possible to get
the reports "r2:" and "r3:"? There is something special with
variables
sys.inet6 and sys.interfaces_data in my opinion.
Regards,
Meikel
Am 26.07.2018 um 22:01 schrieb Paul Heinlein:> On Thu, 26 Jul 2018, Meikel wrote:
>
>> Hey folks,
>>
>> I have a problem with the definition of a variable of type slist in
>> CFEngine on
>>
>> # uname -a ; cat /etc/redhat-release
>> Linux policyhub.example.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22
>> 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
>> CentOS Linux release 7.4.1708 (Core)
>>
>> I'm not sure if its valid to ask CFEngine questions on this mailing
>> list, but as far as I'm running on CentOS I hope that it is okay.
>>
>> I'm logged in as user
>>
>> # id
>> uid=0(root) gid=0(root) Gruppen=0(root)
>> Kontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
>>
>> and working on directory
>>
>> # pwd
>> /var/cfengine/inputs
>>
>> with software
>>
>> # cf-agent -V
>> CFEngine Core 3.10.2
>>
>> and the configuration file
>>
>> # cat ./info.cf
>> bundle agent info
>> {
>> ?vars:
>> ??? any::
>> ????? "info_list" slist => {
>> ??????? "includes.dir ............... = $(includes.dir)",
>> ??????? "sys.arch ................... = $(sys.arch)",
>> ??????? "sys.bindir ................. = $(sys.bindir)",
>> ??????? "sys.cdate .................. = $(sys.cdate)",
>> ??????? "sys.cf_promises ............ = $(sys.cf_promises)",
>> ??????? "sys.cf_version ............. = $(sys.cf_version)",
>> ??????? "sys.cf_version_major ....... =
$(sys.cf_version_major)",
>> ??????? "sys.cf_version_minor ....... =
$(sys.cf_version_minor)",
>> ??????? "sys.cf_version_patch ....... =
$(sys.cf_version_patch)",
>> ??????? "sys.class .................. = $(sys.class)",
>> ??????? "sys.cpus ................... = $(sys.cpus)",
>> ??????? "sys.crontab ................ = $(sys.crontab)",
>> ??????? "sys.date ................... = $(sys.date)",
>> ??????? "sys.doc_root ............... = $(sys.doc_root)",
>> ??????? "sys.domain ................. = $(sys.domain)",
>> ??????? "sys.enterprise_version ..... =
$(sys.enterprise_version)",
>> ??????? "sys.expires ................ = $(sys.expires)",
>> ??????? "sys.exports ................ = $(sys.exports)",
>> ??????? "sys.failsafe_policy_path ... =
$(sys.failsafe_policy_path)",
>> ??????? "sys.flavor ................. = $(sys.flavor)",
>> ??????? "sys.flavour ................ = $(sys.flavour)",
>> ??????? "sys.fqhost ................. = $(sys.fqhost)",
>> ??????? "sys.fstab .................. = $(sys.fstab)",
>> ??????? "sys.hardware_addresses ..... =
$(sys.hardware_addresses)",
>> ??????? "sys.host ................... = $(sys.host)",
>> ??????? "sys.inet ................... = $(sys.inet)",
>> ??????? "sys.inputdir ............... = $(sys.inputdir)",
>> ??????? "sys.interface .............. = $(sys.interface)",
>> ??????? "sys.interfaces ............. = $(sys.interfaces)",
>> ??????? "sys.interfaces_flags ....... =
$(sys.interfaces_flags)",
>> ??????? "sys.ip_addresses ........... = $(sys.ip_addresses)",
>> ??????? "sys.ip2iface ............... = $(sys.ip2iface)",
>> ??????? "sys.ipv4 ................... = $(sys.ipv4)",
>> ??????? "sys.key_digest ............. = $(sys.key_digest)",
>> ??????? "sys.last_policy_update ..... =
$(sys.last_policy_update)",
>> ??????? "sys.libdir ................. = $(sys.libdir)",
>> ??????? "sys.local_libdir ........... = $(sys.local_libdir)",
>> ??????? "sys.logdir ................. = $(sys.logdir)",
>> ??????? "sys.license_owner .......... =
$(sys.license_owner)",
>> ??????? "sys.licenses_granted ....... =
$(sys.licenses_granted)",
>> ??????? "sys.long_arch .............. = $(sys.long_arch)",
>> ??????? "sys.maildir ................ = $(sys.maildir)",
>> ??????? "sys.masterdir .............. = $(sys.masterdir)",
>> ??????? "sys.os ..................... = $(sys.os)",
>> ??????? "sys.ostype ................. = $(sys.ostype)",
>> ??????? "sys.piddir ................. = $(sys.piddir)",
>> ??????? "sys.policy_hub ............. = $(sys.policy_hub)",
>> ??????? "sys.policy_hub_port ........ =
$(sys.policy_hub_port)",
>> ??????? "sys.release ................ = $(sys.release)",
>> ??????? "sys.resolv ................. = $(sys.resolv)",
>> ??????? "sys.statedir ............... = $(sys.statedir)",
>> ??????? "sys.sysday ................. = $(sys.sysday)",
>> ??????? "sys.systime ................ = $(sys.systime)",
>> ??????? "sys.update_policy_path ..... =
$(sys.update_policy_path)",
>> ??????? "sys.uptime ................. = $(sys.uptime)",
>> ??????? "sys.user_data .............. = $(sys.user_data)",
>> ??????? "sys.uqhost ................. = $(sys.uqhost)",
>> ??????? "sys.version ................ = $(sys.version)",
>> ??????? "sys.windir ................. = $(sys.windir)",
>> ??????? "sys.winprogdir ............. = $(sys.winprogdir)",
>> ??????? "sys.winprogdir86 ........... = $(sys.winprogdir86)",
>> ??????? "sys.winsysdir .............. = $(sys.winsysdir)",
>> ??????? "sys.workdir ................ = $(sys.workdir)",
>> ??????? "... BEGIN big shit ...............",
>> #???????? "sys.inet6 .................. = $(sys.inet6)",
>> #???????? "sys.interfaces_data ........ =
$(sys.interfaces_data)",
>> ??????? "... END big shit ...............",
>> ????? };
>>
>> ?reports:
>> ??? any::
>> ????? "r1: $(info.info_list)";
>> ????? "r2: sys.inet6 .................. = $(sys.inet6)";
>> ????? "r3: sys.interfaces_data ........ =
$(sys.interfaces_data)";
>> ????? "r4: holleri di dudeldoe";
>>
>> }
>>
>> The service cfengine3.service is inactive at the moment:
>>
>> # systemctl is-active cfengine3.service
>> inactive
>>
>> I have a problem with the definition of the stringlist/slist
>> "info_list". In some cases it becomes some kind of
"undefined" or at
>> least I'm not able to print it out in a report (in
"r1:").
>
> Two related questions:
>
> Is there any chance that some elements of your info_list become larger
> than 4K size limit cfengine places on scalar variables?
>
> Similarly, I wonder if the 4K size limit comes into play when a list is
> interpolated into a string, as in your r1 report. I'm merely
> speculating; I don't know one way or the other.
>
>
> Plus, I've never tried defining a slist with a comma after the final
> element. I assume that works for you, but I'll just note it for the
record.
>