Установка OwnCloud на Альт Сервер 10.1

Настройка доступа по SSH не рассматривается, доступ может быть непосредственно как к localhost, так и к удалённым серверам

  1. Установим ansible:

apt-get update && apt-get install -y ansible sshpass
  1. Создадим директорию для проекта:

mkdir ansible; cd ansible
  1. Создадим инвентарный файл:

    • в формате «yaml»

    • в качестве хоста используется «localhost»

vim inventory
  • содержимое инвентарного файла:

all:
  hosts:
    localhost:
  1. Создадим директорию для переменных хоста:

mkdir host_vars
  1. Определим необходимые переменные для хоста — «localhost»:

vim host_vars/localhost.yml
  • содержимое файла:

ansible_ssh_user: root  # пользователь
ansible_ssh_pass: toor  # пароль пользователя
ansible_python_interpreter: /usr/bin/python3    # корректный интерпретатор
  1. Проверяем работоспособность ansible с localhost:

ansible -i inventory -m ping all

img

  1. Создаём playbook-сценарий для установки Nextcloud:

vim playbook.yml
  • содержимое playbook-сценария:

- name: Install OwnCloud on ALT Server 10.1 (10.2)
  hosts: localhost
  become: true

  vars:
    mariadb_database: owncloud
    mariadb_username: owncloud
    mariadb_password: owncloud
    url_download_owncloud: https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
    dir_download_owncloud: /tmp
    path_project_owncloud: /var/www/html/
    virtualhost_servername: owncloud.test.local

  tasks:
    - name: Install database Mariadb
      apt_rpm:
        name:
          - mariadb-server
          - python3-module-mysqlclient
        state: present
        update_cache: true

    - name: Started and enabled mariadb-server
      systemd:
        name: mariadb
        state: started
        enabled: true

    - name: "Create a database {{ mariadb_database }} for OwnCloud"
      mysql_db:
        name: "{{ mariadb_database }}"
        encoding: utf8
        collation: utf8_unicode_ci
        state: present

    - name: "Creating a database user {{ mariadb_username }} for OwnCloud"
      mysql_user:
        name: "{{ mariadb_username }}"
        password: "{{ mariadb_password }}"
        priv: "{{ mariadb_database }}.*:ALL,GRANT"
        host: localhost
        state: present

    - name: Install web-server Apache2 and modules
      apt_rpm:
        name:
          - apache2
          - apache2-base
          - apache2-httpd-prefork
          - apache2-mod_php7
          - apache2-mod_ssl
        state: present

    - name: Install PHP7.4 and php modules
      apt_rpm:
        name:
          - php7
          - php7-curl
          - php7-fileinfo
          - php7-gd
          - php7-intl
          - php7-libs
          - php7-mbstring
          - php7-pdo
          - php7-xmlreader
          - php7-zip
          - php7-mysqli
          - php7-pdo_mysql
        state: present

    - name: Enable the Apache2 module
      apache2_module:
        name: "{{ item }}"
        state: present
      with_items:
        - rewrite
        - headers
        - env
        - dir
        - mime
        - unique_id

    - name: Started and enabled Apache2
      systemd:
        name: httpd2
        state: started
        enabled: true

    - name: Download OwnCloud project
      get_url:
        url: "{{ url_download_owncloud }}"
        dest: "{{ dir_download_owncloud }}" 

    - name: Unarchive a file project OwnCloud
      unarchive:
        src: "{{ dir_download_owncloud }}/owncloud-complete-latest.tar.bz2"
        dest: "{{ path_project_owncloud }}"

    - name: Assign rights to project OwnCloud
      file:
        path: "{{ path_project_owncloud }}/owncloud/"
        recurse: yes
        owner: apache2
        group: apache2

    - name: Setting up a web server to work with OwnCloud
      copy:
        dest: /etc/httpd2/conf/sites-available/owncloud.conf
        content: |
          <VirtualHost *:80>
            DocumentRoot {{ path_project_owncloud }}/owncloud/
            ServerName {{ virtualhost_servername }}

            <Directory {{ path_project_owncloud }}/owncloud/>
              Require all granted
              AllowOverride All
              Options FollowSymLinks MultiViews

              <IfModule mod_dav.c>
                Dav off
              </IfModule>
            </Directory>
          </VirtualHost>

    - name: Adding a symbolic link
      command:
        cmd: ln -s /etc/httpd2/conf/sites-available/owncloud.conf /etc/httpd2/conf/sites-enabled/

    - name: Restarted Apache2
      systemd:
        name: httpd2
        state: restarted
  1. Устанавливаем необходимые коллекции для ansible:

ansible-galaxy collection install community.general

ansible-galaxy collection install community.mysql
  1. Запускаем playbook-сценарий:

ansible-playbook -i inventory playbook.yml

img

img

  1. Проверяем:

img

img

img