Thanks for that, it's showing just how weird things are getting!
puppet 7.4.1, puppetserver 7.0.3. I have this fragment in the default node definition in my site.pp on the server:
```
notify { "here!": }
mount { "/tmp/foo":
ensure => defined,
device => "/dev/shm",
fstype => "tmpfs",
}
```
Just installing the puppet gem on the client, I see a short list of resource types without mount:
```
# puppet describe -l
These are the types known to puppet:
exec - Executes external commands
file - Manages files, including their content, owner ...
filebucket - A repository for storing and retrieving file ...
group - Manage groups
notify - Sends an arbitrary message, specified as a st ...
package - Manage packages
resources - This is a metatype that can manage other reso ...
schedule - Define schedules for Puppet
service - Manage running services
stage - A resource type for creating new run stages
tidy - Remove unwanted files based on specific crite ...
user - Manage users
whit - Whits are internal artifacts of Puppet's curr ...
```
Applying the catalog doesn't do anything useful (expected), but doesn't trigger an error either (unexpected).
The mount resource shows up after installing mount_core on the client, but applying the catalog still doesn't do anything useful:
```
# puppet module install puppetlabs-mount_core
Notice: Preparing to install into /etc/puppetlabs/code/modules ...
Notice: Downloading from
https://forgeapi.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/modules
└── puppetlabs-mount_core (v1.0.4)
# puppet describe -l | grep mount
mount - Manages mounted filesystems, including puttin ...
# puppet agent --no-daemonize --onetime --detailed-exitcodes --verbose
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for foobar.local
Info: Applying configuration version '1616085285'
Notice: here!
Notice: /Stage[main]/Main/Node[default]/Notify[here!]/message: defined 'message' as 'here!'
Notice: Applied catalog in 1.19 seconds
# grep foo /etc/fstab
#
```
Whereas copying the fragment into a foo.pp file on the client and applying it locally *does* do something useful:
```
# puppet apply foo.pp
Notice: Compiled catalog for foobar.local in environment production in 0.06 seconds
Notice: here!
Notice: /Stage[main]/Main/Notify[here!]/message: defined 'message' as 'here!'
Notice: /Stage[main]/Main/Mount[/tmp/foo]/ensure: defined 'ensure' as 'defined'
Notice: /Stage[main]/Main/Mount[/tmp/foo]: Triggered 'refresh' from 1 event
Notice: Applied catalog in 0.11 seconds
# grep foo /etc/fstab
/dev/shm /tmp/foo tmpfs defaults 0 0
```
I note that the catalog adds the mount as expected if puppet is installed via an rpm from the puppetlabs site.
Anyone know why this is working in `puppet apply` but not `puppet agent` when installed via a gem, please?
Thanks,
Mark