Skip to content

Ansible role to set up (multiple) wordpress installations in Debian-like systems (using wp-cli)

License

Notifications You must be signed in to change notification settings

Oefenweb/ansible-wordpress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5e819f6 · Nov 2, 2023
Oct 2, 2023
Mar 15, 2021
Jan 19, 2015
Mar 15, 2021
Apr 21, 2023
Oct 2, 2023
Oct 2, 2023
Jan 19, 2015
Oct 2, 2023
Mar 15, 2021
Oct 2, 2023
Jul 13, 2015
Jun 25, 2021
Apr 21, 2023
Jan 19, 2015
Nov 2, 2023
Jun 25, 2021
Oct 2, 2023

Repository files navigation

wordpress

Build Status Ansible Galaxy

Set up (multiple) wordpress installations in Debian-like systems (using wp-cli).

Requirements

  • php (5.3.2+)
  • mysql (5.0+)
  • apache2 (with mod_rewrite enabled)

This role assumes a working virtual host (that handles wordpress_url).

Variables

  • wordpress_wp_cli_install_dir [default: /usr/local/bin]: Install directory for wp-cli

  • wordpress_installs: [default: []]: Installation declarations

  • wordpress_installs.{n}.name: [required]: Install name (not used for anything, just an identifier)

  • wordpress_installs.{n}.dbname: [required]: Database name

  • wordpress_installs.{n}.dbuser: [required]: Database username

  • wordpress_installs.{n}.dbpass: [required]: Database password (make sure to change)

  • wordpress_installs.{n}.dbhost: [default: localhost, optional]: Database host

  • wordpress_installs.{n}.dbprefix: [default: wp_, optional]: Prefix for database tables

  • wordpress_installs.{n}.path: [required]: Install directory for wordpress

  • wordpress_installs.{n}.locale: [default: en_US, optional]: Language of the downloaded Wordpress

  • wordpress_installs.{n}.owner: [default: www-data]: The name of the user that should own the install

  • wordpress_installs.{n}.group: [default: owner, www-data]: The name of the group that should own the install

  • wordpress_installs.{n}.url: [required]: Wordpress url

  • wordpress_installs.{n}.title: [required]: Wordpress title

  • wordpress_installs.{n}.admin_name: [default: admin, optional]: Wordpress admin (user)name

  • wordpress_installs.{n}.admin_email: [required]: Wordpress admin email address

  • wordpress_installs.{n}.admin_password: [required]: Wordpress admin password (make sure to change)

  • wordpress_installs.{n}.cron: [optional]: Cron declaration

  • wordpress_installs.{n}.cron.use_crond: [default: false]: Whether or not to use crond instead of wp-cron

  • wordpress_installs.{n}.cron.user: [default: www-data]: User to run job as

  • wordpress_installs.{n}.cron.schedule: [optional]: Cron schedule declaration

  • wordpress_installs.{n}.cron.schedule.day: [default: *]: Day when the job should run

  • wordpress_installs.{n}.cron.schedule.hour: [default: *]: Hour when the job should run

  • wordpress_installs.{n}.cron.schedule.minute: [default: *]: Minute when the job should run

  • wordpress_installs.{n}.cron.schedule.month: [default: *]: Month when the job should run

  • wordpress_installs.{n}.cron.schedule.weekday: [default: *]: Weekday when the job should run

  • wordpress_installs.{n}.themes: [required]: (Additional) themes to install (and activate)

  • wordpress_installs.{n}.themes.{n}.name: [required]: Name of the theme

  • wordpress_installs.{n}.themes.{n}.activate: [default: false, optional]: Whether or not to activate the theme

  • wordpress_installs.{n}.plugins: [required]: (Additional) plugins to install (and activate)

  • wordpress_installs.{n}.plugins.{n}.name: [required]: Name of the plugin

  • wordpress_installs.{n}.plugins.{n}.zip: [optional]: Zip of the plugin

  • wordpress_installs.{n}.plugins.{n}.url: [optional]: Url of the plugin

  • wordpress_installs.{n}.plugins.{n}.activate: [default: true, optional]: Whether to activate or to deactivate the plugin

  • wordpress_installs.{n}.plugins.{n}.force: [default: false, optional]: Whether or not to add the --force option during install

  • wordpress_installs.{n}.users: [optional]: User declarations

  • wordpress_installs.{n}.users.src: [required]: The local path of the csv file to import, can be absolute or relative (e.g. ../../../files/wordpress/users.csv)

  • wordpress_installs.{n}.users.skip_update: [default: true, optional]: Whether or not to update users that already exist

  • wordpress_installs.{n}.options: [required]: Options to add, update or delete

  • wordpress_installs.{n}.options.{n}.command: [required]: Add, update or delete

  • wordpress_installs.{n}.options.{n}.name: [required]: Name of the option

  • wordpress_installs.{n}.options.{n}.value: [required]: Value of the option

  • wordpress_installs.{n}.options.{n}.autoload: [default: true, optional]: Whether this option should be automatically loaded (only supported for add command)

  • wordpress_installs.{n}.queries: [default: [], optional]: A list of queries to execute

Dependencies

None

Examples

Quickstart

---
- hosts: all
  roles:
    - oefenweb.wordpress
  vars:
    wordpress_installs:
      - name: wordpress
        dbname: wordpress
        dbuser: wordpress
        dbpass: 'heCrE7*d2KEs'
        dbhost: localhost
        path: /var/www
        url: http://localhost
        title: wordpress
        admin_name: admin
        admin_email: [email protected]
        admin_password: 'tuFr8=aPra@a'
        themes:
          - name: twentytwelve
            activate: true
          - name: twentythirteen
        plugins:
          - name: contact-form-7
            activate: false
          - name: simple-fields
        users: {}
        options: []
        queries: []

Using options:

---
- hosts: all
  roles:
    - oefenweb.wordpress
  vars:
    wordpress_installs:
      - name: wordpress
        dbname: wordpress
        dbuser: wordpress
        dbpass: 'heCrE7*d2KEs'
        dbhost: localhost
        path: /var/www
        url: http://localhost
        title: wordpress
        admin_name: admin
        admin_email: [email protected]
        admin_password: 'tuFr8=aPra@a'
        themes:
          - name: twentytwelve
            activate: true
          - name: twentythirteen
        plugins:
          - name: contact-form-7
            activate: false
          - name: simple-fields
        users: {}
        options:
          - name: woocommerce_api_enabled
            command: update
            value: yes
          - name: swoocommerce_email_from_name
            command: update
            vakue: [email protected]
          - name: woocommerce_currency
            command: update
            vakue: MXN
        queries: []

License

MIT

Author Information

Mischa ter Smitten

Feedback, bug-reports, requests, ...

Are welcome!