Augeas fails to update configuration file
OS: Debian Stretch
Puppet version: 4.8.2 (using the official Debian package)
Module version: d3b14e651fb2e69ed9f4d9169464b07062ece5cc
Hi!
Running the module, the first puppet run works fine, but once the /etc/mattermost.json
file is created, Augeas tries to update it and fails:
Debug: /Stage[main]/Mattermost::Config/File[/etc/mattermost.json]/before: subscribes to Augeas[/etc/mattermost.json]
Debug: /Stage[main]/Mattermost::Config/File[/etc/mattermost.json]: Adding autorequire relationship with User[mattermost]
Debug: /Stage[main]/Mattermost::Config/File[/etc/mattermost.json]: Adding autorequire relationship with Group[mattermost]
Debug: Augeas[/etc/mattermost.json](provider=augeas): Opening augeas with root /, lens path , flags 64
Debug: Augeas[/etc/mattermost.json](provider=augeas): Augeas version 1.8.0 is installed
Warning: Augeas[/etc/mattermost.json](provider=augeas): Loading failed for one or more files, see debug for /augeas//error output
Debug: Augeas[/etc/mattermost.json](provider=augeas): /augeas/files/etc/mattermost.json/error = parse_failed
Debug: Augeas[/etc/mattermost.json](provider=augeas): /augeas/files/etc/mattermost.json/error/pos = 3878
Debug: Augeas[/etc/mattermost.json](provider=augeas): /augeas/files/etc/mattermost.json/error/line = 103
Debug: Augeas[/etc/mattermost.json](provider=augeas): /augeas/files/etc/mattermost.json/error/char = 22
Debug: Augeas[/etc/mattermost.json](provider=augeas): /augeas/files/etc/mattermost.json/error/lens = /usr/share/augeas/lenses/dist/json.aug:47.10-.25:
Debug: Augeas[/etc/mattermost.json](provider=augeas): /augeas/files/etc/mattermost.json/error/message = Syntax error
Debug: Augeas[/etc/mattermost.json](provider=augeas): Will attempt to save and only run if files changed
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'ServiceSettings']", "ServiceSettings"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'ServiceSettings']/dict/entry[ . = 'SiteURL']", "SiteURL"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'ServiceSettings']/dict/entry[ . = 'SiteURL']/string", "https://foo.bar.org"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'SqlSettings']", "SqlSettings"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'SqlSettings']/dict/entry[ . = 'DriverName']", "DriverName"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'SqlSettings']/dict/entry[ . = 'DriverName']/string", "mysql"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'SqlSettings']/dict/entry[ . = 'DataSource']", "DataSource"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'SqlSettings']/dict/entry[ . = 'DataSource']/string", "mattermost:XXXXX@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'TeamSettings']", "TeamSettings"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'TeamSettings']/dict/entry[ . = 'SiteName']", "SiteName"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'TeamSettings']/dict/entry[ . = 'SiteName']/string", "FOOBAR"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'FileSettings']", "FileSettings"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'FileSettings']/dict/entry[ . = 'Directory']", "Directory"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'FileSettings']/dict/entry[ . = 'Directory']/string", "/data/mattermost-data"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'PasswordSettings']", "PasswordSettings"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'PasswordSettings']/dict/entry[ . = 'MinimumLength']", "MinimumLength"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'PasswordSettings']/dict/entry[ . = 'MinimumLength']/number", "12"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'LocalizationSettings']", "LocalizationSettings"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'LocalizationSettings']/dict/entry[ . = 'DefaultServerLocale']", "DefaultServerLocale"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'LocalizationSettings']/dict/entry[ . = 'DefaultServerLocale']/string", "en"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'LocalizationSettings']/dict/entry[ . = 'DefaultClientLocale']", "DefaultClientLocale"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): sending command 'set' with params ["/files/etc/mattermost.json/dict/entry[ . = 'LocalizationSettings']/dict/entry[ . = 'DefaultClientLocale']/string", "fr"]
Debug: Augeas[/etc/mattermost.json](provider=augeas): Closed the augeas connection
Error: /Stage[main]/Mattermost::Config/Augeas[/etc/mattermost.json]: Could not evaluate: Saving failed, see debug
Notice: /Stage[main]/Mattermost::Service/Service[mattermost]: Dependency Augeas[/etc/mattermost.json] has failures: true
Warning: /Stage[main]/Mattermost::Service/Service[mattermost]: Skipping because of failed dependencies
Notice: /Stage[main]/Mattermost/Anchor[mattermost::end]: Dependency Augeas[/etc/mattermost.json] has failures: true
Warning: /Stage[main]/Mattermost/Anchor[mattermost::end]: Skipping because of failed dependencies
I then rm /etc/mattermost.json
:
Notice: /Stage[main]/Mattermost::Config/File[/etc/mattermost.json]/ensure: defined content as '{md5}cb7b5894e1f958bb48dad6a3bb36d505'
Notice: Augeas[/etc/mattermost.json](provider=augeas):
--- /etc/mattermost.json 2018-03-16 16:56:25.389880819 -0400
+++ /etc/mattermost.json.augnew 2018-03-16 16:56:25.481880977 -0400
@@ -1,6 +1,6 @@
{
"ServiceSettings": {
- "SiteURL": "",
+ "SiteURL": "https://foo.bar.org",
"LicenseFileLocation": "",
"ListenAddress": ":8065",
"ConnectionSecurity": "",
@@ -63,7 +63,7 @@
"ImageProxyURL": ""
},
"TeamSettings": {
- "SiteName": "Mattermost",
+ "SiteName": "FOOBAR",
"MaxUsersPerTeam": 50,
"EnableTeamCreation": true,
"EnableUserCreation": true,
@@ -100,7 +100,7 @@
},
"SqlSettings": {
"DriverName": "mysql",
- "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
+ "DataSource": "mattermost:XXX@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,
@@ -120,7 +120,7 @@
"EnableDiagnostics": true
},
"PasswordSettings": {
- "MinimumLength": 5,
+ "MinimumLength": 12,
"Lowercase": false,
"Number": false,
"Uppercase": false,
@@ -132,7 +132,7 @@
"EnableMobileDownload": true,
"MaxFileSize": 52428800,
"DriverName": "local",
- "Directory": "./data/",
+ "Directory": "/data/mattermost-data",
"EnablePublicLink": false,
"PublicLinkSalt": "",
"InitialFont": "luximbi.ttf",
@@ -269,7 +269,7 @@
},
"LocalizationSettings": {
"DefaultServerLocale": "en",
- "DefaultClientLocale": "en",
+ "DefaultClientLocale": "fr",
"AvailableLocales": ""
},
"SamlSettings": {
Notice: /Stage[main]/Mattermost::Config/Augeas[/etc/mattermost.json]/returns: executed successfully
Info: Class[Mattermost::Config]: Scheduling refresh of Class[Mattermost::Service]
Info: Class[Mattermost::Service]: Scheduling refresh of Service[mattermost]
Notice: /Stage[main]/Mattermost::Service/Service[mattermost]/ensure: ensure changed 'stopped' to 'running'
Info: /Stage[main]/Mattermost::Service/Service[mattermost]: Unscheduling refresh on Service[mattermost]
Notice: Applied catalog in 5.85 seconds