community.general.webfaction_site module – Add or remove a website on a Webfaction host

Note

This module is part of the community.general collection (version 4.8.3).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.webfaction_site.

Synopsis

Parameters

Parameter

Comments

host

string / required

The webfaction host on which the site should be created.

https

boolean

Whether or not to use HTTPS

Choices:

  • no ← (default)

  • yes

login_name

string / required

The webfaction account to use

login_password

string / required

The webfaction password to use

name

string / required

The name of the website

site_apps

list / elements=list

A mapping of URLs to apps

Default: []

state

string

Whether the website should exist

Choices:

  • present ← (default)

  • absent

subdomains

list / elements=string

A list of subdomains associated with this site.

Default: []

Notes

Note

  • Sadly, you do need to know your webfaction hostname for the host parameter. But at least, unlike the API, you don’t need to know the IP address. You can use a DNS name.

  • If a site of the same name exists in the account but on a different host, the operation will exit.

  • You can run playbooks that use this on a local machine, or on a Webfaction host, or elsewhere, since the scripts use the remote webfaction API. The location is not important. However, running them on multiple hosts simultaneously is best avoided. If you don’t specify localhost as your host, you may want to add serial: 1 to the plays.

  • See the webfaction API for more info.

Examples

- name: Create website
  community.general.webfaction_site:
    name: testsite1
    state: present
    host: myhost.webfaction.com
    subdomains:
      - 'testsite1.my_domain.org'
    site_apps:
      - ['testapp1', '/']
    https: no
    login_name: "{{webfaction_user}}"
    login_password: "{{webfaction_passwd}}"

Authors

  • Quentin Stafford-Fraser (@quentinsf)