Changeset - 2ecdd0639863
[Not reviewed]
0 1 0
Branko Majic (branko) - 1 month ago 2024-09-09 13:24:10
branko@majic.rs
MAR-218: Update the usage tasks and instructions for Ansible 10.3:

- Update the module names to include the namespace.
- Drop references to Python 3, and bump up the installed package
versions.
1 file changed with 27 insertions and 28 deletions:
0 comments (0 inline, 0 general)
docs/usage.rst
Show inline comments
 
@@ -133,9 +133,9 @@ packages, and to prepare the environment a bit on the Ansible server:
 
   ::
 

	
 
     mkdir ~/mysite/
 
     mkvirtualenv -p /usr/bin/python3 -a ~/mysite/ mysite
 
     mkvirtualenv -a ~/mysite/ mysite
 
     pip install -U pip setuptools
 
     pip install 'ansible~=2.9.0' netaddr
 
     pip install 'ansible~=10.3.0' netaddr
 

	
 
.. warning::
 
   The ``netaddr`` package is needed for ``ipv4/ipv6`` lookup plugins
 
@@ -188,7 +188,6 @@ First of all, let's set-up some basic directory structure and configuration:
 
     roles_path=/home/ansible/majic-ansible-roles/roles:/home/ansible/mysite/roles
 
     force_handlers = True
 
     inventory = /home/ansible/mysite/hosts
 
     interpreter_python = /usr/bin/python3
 

	
 
     [ssh_connection]
 
     pipelining = True
 
@@ -1551,7 +1550,7 @@ Before we start, here is a couple of useful pointers regarding the
 
      # ==========
 

	
 
      - name: Download the application archive
 
        get_url:
 
        ansible.builtin.get_url:
 
          url: "https://download.nextcloud.com/server/releases/nextcloud-28.0.3.tar.bz2"
 
          dest: "/var/www/nextcloud.example.com/nextcloud-28.0.3.tar.gz"
 
          sha256sum: "9ed413c0de16f5b033ceeffcca99c0d61fc698dbeb8db851ac9adf9eef951906"
 
@@ -1559,7 +1558,7 @@ Before we start, here is a couple of useful pointers regarding the
 
        become_user: admin-nextcloud_example_com
 

	
 
      - name: Unpack the application archive
 
        unarchive:
 
        ansible.builtin.unarchive:
 
          src: "/var/www/nextcloud.example.com/nextcloud-28.0.3.tar.gz"
 
          dest: "/var/www/nextcloud.example.com/"
 
          copy: no
 
@@ -1569,23 +1568,23 @@ Before we start, here is a couple of useful pointers regarding the
 

	
 
      # Majic Ansible Roles currently only support utf8 encoding.
 
      - name: Disable opportunistic use of utf8mb4 on fresh installs
 
        lineinfile:
 
        ansible.builtin.lineinfile:
 
          dest: "/var/www/nextcloud.example.com/nextcloud/lib/private/Setup/MySQL.php"
 
          line: "{{ '\t\t\t' }}$this->config->setValue('mysql.utf8mb4', true);"
 
          state: absent
 

	
 
      - name: Allow application user to install and update applications
 
        file:
 
        ansible.builtin.file:
 
          path: "/var/www/nextcloud.example.com/nextcloud/apps"
 
          mode: g+w
 

	
 
      - name: Allow CLI tool to be run by the user and group
 
        file:
 
        ansible.builtin.file:
 
          path: "/var/www/nextcloud.example.com/nextcloud/occ"
 
          mode: u+x,g+x
 

	
 
      - name: Create directory for storing data
 
        file:
 
        ansible.builtin.file:
 
          path: "/var/www/nextcloud.example.com/data"
 
          state: directory
 
          mode: 02770
 
@@ -1593,7 +1592,7 @@ Before we start, here is a couple of useful pointers regarding the
 
          group: "web-nextcloud_example_com"
 

	
 
      - name: Create directory for storing configuration files
 
        file:
 
        ansible.builtin.file:
 
          path: "/var/www/nextcloud.example.com/nextcloud/config"
 
          state: directory
 
          mode: 02750
 
@@ -1601,20 +1600,20 @@ Before we start, here is a couple of useful pointers regarding the
 
          group: "web-nextcloud_example_com"
 

	
 
      - name: Create an empty log file if it does not exist
 
        copy:
 
        ansible.builtin.copy:
 
          content: ""
 
          dest: "/var/www/nextcloud.example.com/data/nextcloud.log"
 
          force: no
 

	
 
      - name: Set-up log file permissions
 
        file:
 
        ansible.builtin.file:
 
          path: "/var/www/nextcloud.example.com/data/nextcloud.log"
 
          owner: "admin-nextcloud_example_com"
 
          group: "web-nextcloud_example_com"
 
          mode: 0660
 

	
 
      - name: Symlink the default path used by the web server for finding application files
 
        file:
 
        ansible.builtin.file:
 
          src: "/var/www/nextcloud.example.com/nextcloud"
 
          dest: "/var/www/nextcloud.example.com/htdocs"
 
          state: link
 
@@ -1628,7 +1627,7 @@ Before we start, here is a couple of useful pointers regarding the
 
      # ============
 

	
 
      - name: Get application installation status
 
        command: "/var/www/nextcloud.example.com/nextcloud/occ status"
 
        ansible.builtin.command: "/var/www/nextcloud.example.com/nextcloud/occ status"
 
        become: yes
 
        become_user: "admin-nextcloud_example_com"
 
        register: nextcloud_status
 
@@ -1636,11 +1635,11 @@ Before we start, here is a couple of useful pointers regarding the
 
        failed_when: False
 

	
 
      - name: Check if application is installed
 
        set_fact:
 
        ansible.builtin.set_fact:
 
          nextcloud_installed: "{{ 'Nextcloud is not installed' not in nextcloud_status.stderr }}"
 

	
 
      - name: Deploy installation script
 
        copy:
 
        ansible.builtin.copy:
 
          src: "install_nextcloud.py"
 
          dest: "/var/www/nextcloud.example.com/install_nextcloud.py"
 
          owner: "admin-nextcloud_example_com"
 
@@ -1649,25 +1648,25 @@ Before we start, here is a couple of useful pointers regarding the
 
        when: "not nextcloud_installed"
 

	
 
      - name: Install application
 
        command: "/var/www/nextcloud.example.com/install_nextcloud.py"
 
        ansible.builtin.command: "/var/www/nextcloud.example.com/install_nextcloud.py"
 
        become: yes
 
        become_user: "admin-nextcloud_example_com"
 
        when: "not nextcloud_installed"
 

	
 
      - name: Remove installation script
 
        file:
 
        ansible.builtin.file:
 
          path: "/var/www/nextcloud.example.com/install_nextcloud.py"
 
          state: absent
 

	
 
      - name: Fix data file permissions for application user/group
 
        file:
 
        ansible.builtin.file:
 
          path: "/var/www/nextcloud.example.com/data"
 
          mode: g+w
 
          recurse: yes
 
          follow: no
 

	
 
      - name: Deploy local configuration overrides
 
        copy:
 
        ansible.builtin.copy:
 
          src: "local.config.php"
 
          dest: "/var/www/nextcloud.example.com/nextcloud/config/local.config.php"
 
          owner: "admin-nextcloud_example_com"
 
@@ -1928,7 +1927,7 @@ on the safe side:
 
      ---
 

	
 
      - name: Create Django project directory
 
        file:
 
        ansible.builtin.file:
 
          dest: "/var/www/wiki.example.com/code"
 
          state: directory
 
          owner: admin-wiki_example_com
 
@@ -1936,7 +1935,7 @@ on the safe side:
 
          mode: 02750
 

	
 
      - name: Start Django project for the Wiki website
 
        command: "/var/www/wiki.example.com/virtualenv/bin/exec django-admin startproject wiki_example_com /var/www/wiki.example.com/code"
 
        ansible.builtin.command: "/var/www/wiki.example.com/virtualenv/bin/exec django-admin startproject wiki_example_com /var/www/wiki.example.com/code"
 
        args:
 
          chdir: "/var/www/wiki.example.com"
 
          creates: "/var/www/wiki.example.com/code/wiki_example_com"
 
@@ -1944,7 +1943,7 @@ on the safe side:
 
        become_user: admin-wiki_example_com
 

	
 
      - name: Deploy settings for wiki website
 
        copy:
 
        ansible.builtin.copy:
 
          src: "{{ item }}"
 
          dest: "/var/www/wiki.example.com/code/wiki_example_com/{{ item }}"
 
          mode: 0640
 
@@ -1957,7 +1956,7 @@ on the safe side:
 
          - Restart wiki
 

	
 
      - name: Deploy project database and deploy static files
 
        django_manage:
 
        community.general.django_manage:
 
          command: "{{ item }}"
 
          app_path: "/var/www/wiki.example.com/code/"
 
          virtualenv: "/var/www/wiki.example.com/virtualenv/"
 
@@ -1968,7 +1967,7 @@ on the safe side:
 
          - collectstatic
 

	
 
      - name: Deploy the superuser creation script
 
        copy:
 
        ansible.builtin.copy:
 
          src: "create_superuser.py"
 
          dest: "/var/www/wiki.example.com/code/create_superuser.py"
 
          owner: admin-wiki_example_com
 
@@ -1976,7 +1975,7 @@ on the safe side:
 
          mode: 0750
 

	
 
      - name: Create initial superuser
 
        command: "/var/www/wiki.example.com/virtualenv/bin/exec ./create_superuser.py"
 
        ansible.builtin.command: "/var/www/wiki.example.com/virtualenv/bin/exec ./create_superuser.py"
 
        args:
 
          chdir: "/var/www/wiki.example.com/code/"
 
        become: yes
 
@@ -1990,7 +1989,7 @@ on the safe side:
 
      ---
 

	
 
      - name: Restart wiki
 
        service:
 
        ansible.builtin.service:
 
          name: wiki.example.com
 
          state: restarted
 

	
 
@@ -2584,7 +2583,7 @@ easily do so by updating the ``common_packages`` setting.
 
In addition to system packages, the ``common`` role makes it easy to check if
 
any of the pip requirements files are outdated as well. It should be noted,
 
though, that this check does *not* verify the Python virtual environments
 
themselves. Only Python 3 is supported at this time.
 
themselves.
 

	
 
This is primarily useful when you use `pip-tools
 
<https://github.com/jazzband/pip-tools>`_ for maintaining the
0 comments (0 inline, 0 general)