Comment désactiver les marionnettes programmées automatiques qui se produisent toutes les 30 minutes?

8

Objectif

L'objectif est de désactiver les exécutions automatiques de Puppet-Agent qui se produisent toutes les 30 minutes. Il est possible de modifier l'intervalle , mais les exécutions automatiques de Puppet-Agent doivent être complètement désactivées.


Essayez-en un

Selon cette documentation, il devrait être possible de désactiver les exécutions automatiques de Puppet-Agent en configurant les éléments suivants:

/etc/puppet/puppet.conf

[agent]
daemonize=false

résulte en

Notice: Run of Puppet configuration client already in progress; 
skipping  (/var/lib/puppet/state/agent_catalog_run.lock exists)

si la marionnette est exécutée manuellement à l'intervalle d'exécution par défaut de 30 minutes.


Tentez deux

user@hostname:~$ sudo puppet agent --disable

résulte en

user@hostname:~$ sudo puppet agent -t
Notice: Skipping run of Puppet configuration client; 
administratively disabled (Reason: 'reason not specified');
Use 'puppet agent --enable' to re-enable.

Tentez trois

Cette documentation a été trouvée après avoir googlé la question de cette Q&R, mais les informations fournies n'ont pas répondu à la question.

030
la source
2
Essayez-en un. S'il fonctionnait déjà, vous devez l'arrêter vous-même. Cela empêche simplement les instances futures de démoniser. Si je manque quelque chose, veuillez expliquer pourquoi cela n'a pas fonctionné. Vous pouvez également chkconfig puppet off && service puppet stoputiliser Red Hat et ses dérivés.
Aaron Copley
@AaronCopley Merci pour les conseils. J'ai désactivé et arrêté la marionnette et je vérifierai si elle ne s'exécute pas toutes les 30 minutes. Le daemonize=falseparamètre réside toujours dans la section Agent dans /etc/puppet/puppet.conf
030
@AaronCopley Pourriez-vous publier le commentaire comme réponse?
030

Réponses:

10

«Tenter un» aurait dû fonctionner. S'il fonctionnait déjà, vous devez l'arrêter vous-même. Cela empêche simplement les instances futures de démoniser. Si je manque quelque chose, veuillez expliquer pourquoi cela n'a pas fonctionné. Vous pouvez également chkconfig puppet off && service puppet stoputiliser Red Hat et ses dérivés.

Aaron Copley
la source
Peut-être que cela n'a pas fonctionné la première fois car l'agent fantoche n'a pas été redémarré. Demain, je vérifierai si l'exécution de la commande fournie a résolu le problème.
030
4

Vous devez vous assurer que l'agent fantoche ne démarre pas en tant que service. Des commandes comme systemctl, ou chkconfigsont votre ami ici (par exemple systemctl disable puppetou chkconfig puppet off). Pas sûr de la plupart des distributions.

Ensuite, vous devez également vous assurer que l'agent est arrêté. Par exemple systemctl stop puppetou service stop puppet.

Vous pouvez également simplement utiliser une marionnette pour accomplir ce qui précède:

puppet apply <(echo "service { puppet: ensure => false, enable => false }")

Si cela ne fonctionne toujours pas, pkill puppetpour faire bonne mesure, essayez à nouveau, si cela ne fonctionne toujours pas - redémarrez.

chutz
la source
3

Cherchez-vous une commande comme:

puppet agent --disable
TomOnTime
la source
Merci d'avoir posté une réponse. L'exécution de cette commande entraîneError: Could not parse application options: invalid option: --disable
030
1
devrait être un agent fantoche --disable
dmourati
@dmourati Si cette commande a été exécutée. sudo puppet agent -trésultatsNotice: Skipping run of Puppet configuration client; administratively disabled (Reason: 'reason not specified'); Use 'puppet agent --enable' to re-enable.
030
@TomOnTime Cela a déjà été essayé. Une fois que cette commande a été exécutée, il n'est plus possible d'exécuter la marionnette manuellement (Documentation d'Attempt2 dans la question)
030
1
C'est ce que vous vouliez: Administrativement désactivé. Si vous devez exécuter manuellement tout en étant administrativement désactivé: agent de marionnettes --enable; agent de marionnettes - test; puppet agent --disable
dmourati
2

Je ne m'attendrais pas à ce que l'option daemonize affecte cela - je m'attendrais à ce que cela contrôle si le programme se déroule en arrière-plan et se détache du terminal.

https://docs.puppetlabs.com/references/stable/configuration.html#runinterval dit ...

runinterval

Fréquence à laquelle l'agent fantoche applique le catalogue. Notez qu'un intervalle d'exécution de 0 signifie «exécuter en continu» plutôt que «ne jamais exécuter». Si vous voulez que l'agent de marionnettes ne s'exécute jamais, vous devez le démarrer avec l'option --no-client. Ce paramètre peut être un intervalle de temps en secondes (30 ou 30s), minutes (30m), heures (6h), jours (2d) ou années (5y).

ce qui semble plus pertinent (la référence à commencer par --no-clientplutôt que le paramètre lui-même).

Lorsque nous devons arrêter la modification régulière de la marionnette, nous arrêtons simplement le service sur le nœud géré. Cela signifie évidemment que vous devez pouvoir invoquer une exécution ponctuelle via un autre mécanisme (nous ne le faisons pas souvent, il suffit donc de l'exécuter à partir du shell).

Avec cette configuration, puppetd fonctionne mais ne fait pas de mises à jour régulières (c'est mon attente - j'essaie ceci sur une machine de test mais pas assez de temps s'est encore écoulé).

L'exécution puppet agent --testentraînera une seule exécution, mais ne planifiera aucune exécution future.

Paul Haldane
la source
Merci d'avoir posté une réponse. Cela signifie-t-il que si quelqu'un s'exécute accidentellement, par exemple sudo puppet agent -t, l'exécution planifiée sera réactivée?
030
Non, cela -timplique no-daemonize. (En plus onetime, verbose, ignorecache, no-usecacheonfailure, detailed-exit-codes, no-splayet show_diff.) Vous pouvez le voir dans la sortie puppet agent help.
Aaron Copley
1

sudo service puppet stop si vous exécutez le démon marionnette

Ou supprimez le cronjob si c'est ainsi que vous l'avez configuré.

dmourati
la source
L'installation d'un agent Puppet entraîne-t-elle également l'installation d'une tâche cron? Je n'ai pas configuré de cronjob pour exécuter Puppet moi-même.
030
Non, une installation par défaut n'entraîne pas de création d'une tâche cron. Si vous choisissez d'exécuter Puppet sans le service démonisé, vous pouvez créer vous-même un travail cron .
Aaron Copley
1
puppet --version

Retour

5.3.3

puppet resource service puppet ensure=stopped enable=false

Retour

Notice: /Service[puppet]/ensure: ensure changed 'running' to 'stopped'
service { 'puppet':
  ensure => 'stopped',
  enable => 'false',
}

L'opposé de stoppedest running. L'opposé de falseest true. ;)

uav
la source
0

Comme je l'ai mentionné dans la question liée , une possibilité d'avoir exécuté marionnette-agent et de désactiver l'exécution de la configuration, cela change runintervalen très grande valeur, comme 10 ans ou quelque chose comme ça. Mais cette solution déclenche toujours l'exécution de la configuration après le redémarrage de l'agent.

Alexander Tolkachev
la source