Skip to main content

How to add successive cron via puppet

I want to add successive crons via puppet, first one to set as each 10 minutes, and the 2nd one to run in Sunday 7:00PM.

The first cron in puppet is working properly, but the 2nd one shows the below error: "Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid relationship: Cron[notifyinactivetargetweekly] { require => File[...notifyinactivetargetweekly.sh] }, because File[...notifyinactivetargetweekly.sh] doesn't seem to be in the catalog Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run"

Below are the manifest code.
cron { 'firstsynccron':
    command => "${phpapp::DocRootDir}/firstcronsync.sh ${scmdemophp::Environment} ${phpapp::DocRootDir}",
    require => File["${phpapp::DocRootDir}/firstcronsync.sh"],
    minute  => '*/10',
    environment=>["COMPOSER_HOME=${phpapp::DocRootDir}",
                    "SYMFONY_ENV=${phpapp::Environment}",
                    "SYMFONY_DEBUG=${phpapp::Debug}",
                    "PATH=.../usr/local/sbin:/usr/local/bin:/sbin/:/bin/:/usr/sbin/:/usr/bin/"
                ],

}->
cron { 'notifyweeklycron':
    command => "${phpapp::DocRootDir}/notifyweeklycron.sh ${phpapp::Environment} ${phpapp::DocRootDir}",
    require => File["${phpapp::DocRootDir}/notifyweeklycron.sh"],
    minute  => '00',
    hour  => '19',
    weekday  => 'Sunday',
    environment=>["COMPOSER_HOME=${phpapp::DocRootDir}",
                    "SYMFONY_ENV=${phpapp::Environment}",
                    "SYMFONY_DEBUG=${phpapp::Debug}",
                    "PATH=.../usr/local/sbin:/usr/local/bin:/sbin/:/bin/:/usr/sbin/:/usr/bin/"
                ],

}->
The hieradata consists the below classloading:
classes:
  - phpapp::mysymfonydeploy
the init.pp of edsconsoledeploy consists:
class scmdemophp {
    $DocRootDir = "/var/code"
and I checked that the file "/app/code/notifyinactivetargetweekly.sh" exists.

UPDATES:

I have created the same, but for some reason the cron is not running as per timing:
file { "${DocRootDir}/notifyweeklycron.sh":
  ensure  => file,
  content => "... whatever's in the file, or use a template/source ...",
}->
cron { 'notifyweeklycron':
    command => "${phpapp::DocRootDir}/notifyweeklycron.sh ${phpapp::Environment} ${phpapp::DocRootDir}",
    require => File["${phpapp::DocRootDir}/notifyweeklycron.sh"],
    minute  => '*/15',
    environment=>["COMPOSER_HOME=${phpapp::DocRootDir}",
                    "SYMFONY_ENV=${phpapp::Environment}",
                    "SYMFONY_DEBUG=${phpapp::Debug}",
                    "PATH=.../usr/local/bin:/sbin/:/bin/:/usr/sbin/:/usr/bin/"
                ],

}
but its not running after 15 minutes, need help
  1. The puppet log says: File[/var/code/firstsynccron.sh]/mode: mode changed '0664' to '0751'
  2. but it does not showing the same for File[/var/code/notifyweeklycron.sh]/mode: mode changed '0664' to '0751'
  3. frequency changes are reflecting though
I was so confused and searching what to do, I received an answer on a tech forum, and that I want to describe here:



What I was missing was using a requirebeforesubscribe or notify parameter, which says that a resource is related to a file or other resource must contain a valid reference.

The require is requiring a file resource which is defined in your Puppet manifests, and also surprisingly it does not necessarily a file on the server location. So what was there in my code:
require => File["${phpapp::DocRootDir}/notifyinactivetargetweekly.sh"],
So puppet was expecting, a file resource destined at /var/code/notifyweeklycron.shshould exist as per my manifest, and the fix was:
file { "${phpapp:DocRootDir}/notifyweeklycron.sh":
  ensure  => file,
  content => "... whatever's in the file, or use a template/source ...",
}
My require issue has been resolved.

Comments

Popular posts from this blog

Layered architecture of a modern web application - Analyzing needs of CMS

  Layered architecture of a modern web application discussed nowadays, in any framework Throughout my entire career, I have searched for the word design and architecture, and I am talking about Application Design in Software Development. Today I am going to discuss one same thing with you. When design a web applications solution architecture, the aspects are commonly Performance, Scalability, Cost effective and Robust. Now performance and scalability comes with layers in an application. A web application serving a particular requirement. And a specific feature which you can break down from the requirement, obviously asks for a feature, and that is scalability. Think about a shopping cart feature, and it requires to be scalable in terms of number of end users interreacting at any specific time. We generally think about how the feature can be scalable enough and then comes the obvious factor which is layers. A layer can be a hosting solution, a framework, a third party solution like...

What is DevOps and what should I learn? - Aniruddha Banerjee - Medium

The most necessary and well-discussed topic was, why should I learn DevOps….. Most of the tech guys like me prefer to introduce myself as a Scrum specialist, Agile developer or maybe the latest term “Fullstack Developer”. Well, what I want to say that, all these impressive adjectives are basically referring to those who work within the periphery of DevOps. DevOps is Dev(development) and Ops(operation), that we all know. We know that it’s a culture, but when the question arises, what should I learn, become a DevOps cultured geek, I found myself into tons of Certifications, billions of tools, trillions of methodologies. Not a joke, but if you fall under a situation like me, when Corporate pushing me to become DevOps cultured, but I feared about Exams(it’s a childhood phobia I adopted :P), rather practically implement something worthy, or at least tried it, I became aware at the end that, this someone already had achieved, I should try something new. To study DevOps, I think, i...

Once before lockdown

It was the end of March 2020, and I was a little scared. I had a production movement planned, and for team integration, I must be present in the office. It’s a story of that day, which is nearly 1.5 months earlier, the Covid-19 lockdown already declared. And some of my colleagues decided to reach very early in the morning, finish everything, and then come back home. I was at the bus stop; few buses were coming and all of those will not go till the end destination. I unknowingly, almost step inside a bus, and the conductor ceased me, asking where I wanted to go. I got a kick and he told me that he’ll not go till SEZ area, and he warned me about the lockdown condition. With a half an hour waiting, thanks to God, I took a bus and got terrified just when I was in the middle of the crowd, I saw, mostly half of them had their masks on. I was getting more scared and already started remembering God. One of the Lady sitting in the front seat was talking to her mother, asking that br...