|
|
@@ -0,0 +1,55 @@
|
|
|
+#!/usr/bin/python
|
|
|
+
|
|
|
+from ansible.module_utils.basic import AnsibleModule
|
|
|
+import subprocess
|
|
|
+
|
|
|
+def wp_cli_installed():
|
|
|
+ """Vérifier si WP-CLI est installé."""
|
|
|
+ try:
|
|
|
+ subprocess.check_output(['wp', '--allow-root', '--info'])
|
|
|
+ return True
|
|
|
+ except (subprocess.CalledProcessError, FileNotFoundError):
|
|
|
+ return False
|
|
|
+
|
|
|
+def update_wp_core(module):
|
|
|
+ """Mettre à jour le core WordPress."""
|
|
|
+ try:
|
|
|
+ output = subprocess.check_output(['wp', '--allow-root', 'core', 'update', '--path=' + module.params['path']], stderr=subprocess.STDOUT)
|
|
|
+ return False, output.decode()
|
|
|
+ except subprocess.CalledProcessError as e:
|
|
|
+ return True, e.output.decode()
|
|
|
+
|
|
|
+def update_wp_plugins(module):
|
|
|
+ """Mettre à jour tous les plugins WordPress."""
|
|
|
+ try:
|
|
|
+ output = subprocess.check_output(['wp', '--allow-root', 'plugin', 'update', '--all', '--path=' + module.params['path']], stderr=subprocess.STDOUT)
|
|
|
+ return False, output.decode()
|
|
|
+ except subprocess.CalledProcessError as e:
|
|
|
+ return True, e.output.decode()
|
|
|
+
|
|
|
+def main():
|
|
|
+ module = AnsibleModule(
|
|
|
+ argument_spec=dict(
|
|
|
+ path=dict(type='str', required=True),
|
|
|
+ ),
|
|
|
+ supports_check_mode=True,
|
|
|
+ )
|
|
|
+
|
|
|
+ if not wp_cli_installed():
|
|
|
+ module.fail_json(msg="WP-CLI n'est pas installé sur ce système.")
|
|
|
+
|
|
|
+ if module.check_mode:
|
|
|
+ module.exit_json(changed=False)
|
|
|
+
|
|
|
+ failed, output_core = update_wp_core(module)
|
|
|
+ if failed:
|
|
|
+ module.fail_json(msg="La mise à jour du core WordPress a échoué", output=output_core)
|
|
|
+
|
|
|
+ failed, output_plugins = update_wp_plugins(module)
|
|
|
+ if failed:
|
|
|
+ module.fail_json(msg="La mise à jour des plugins WordPress a échoué", output=output_plugins)
|
|
|
+
|
|
|
+ module.exit_json(changed=True, msg="Mise à jour du core et des plugins WordPress réussie", output_core=output_core, output_plugins=output_plugins)
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ main()
|