0

I'm getting this error when I'm trying to apply my statefile to my minion: client.school.test: Data failed to compile:

Rendering SLS 'base:nextcloud2' failed: Jinja variable 'list object' has no attribute 'db_name'

I'm trying to enter the data required to create a mysql database and user. The data is the file mysql.sls in the directory /srv/pillar

  mysql:
  - user: dbuser
  - password: Password91!
  - db_name: nextcloud

That directory also has the required top.sls file:

base:
  'G@os:Rocky':
  - mysql

In the directory /srv/salt i have the state file i'm trying to insert the pillar data into:

{% set config = pillar.get("mysql", {}) %}

install_network_packages:
  pkg.installed:
    - pkgs:
      - httpd
      - redis
      - wget
  archive:
      - extracted
      - name: /var/www/html/
      - source: https://download.nextcloud.com/server/releases/nextcloud-22.2.0.tar.bz2
      - skip_verify: true
      - if_missing: /var/www/html/nextcloud

copyconf:
 file.managed:
 - name: /etc/httpd/conf.d/nextcloud.conf
 - source: salt://nextcloud.conf
 - mode: 777

redis:
  pkg.installed: []
  service.running:
    - enable: True
    - require:
      - pkg: redis

firewall:
  cmd.run:
  - name: |
      firewall-cmd --add-service=http --permanent
      firewall-cmd --reload
      dnf -y module switch-to php:7.4
      dnf install -y php-7.4.* php-gd-7.4.* php-mbstring-7.4.* php-intl-7.4.* php-pecl-apcu php-mysqlnd-7.4.* php-opcache-7.4.* php-json-7.4.* php-pecl-zip
      mkdir /var/www/html/nextcloud/data
      dnf install -y mariadb mariadb-server python3-PyMySQL
      systemctl enable mariadb.service
      systemctl start mariadb.service

/var/www/html/:
  file.directory:
    - user: apache
    - group: apache
    - recurse:
      - user
      - group

httpd:
  pkg.installed: []
  service.running:
    - enable: True
    - require:
      - pkg: httpd

mysql:
  mysql_database.present:
    - name: {{ config["db_name"] }}
  mysql_user.present:
    - name: {{ config["user"] }}
    - host: localhost
    - password: {{ config["password"] }}
  mysql_grants.present:
    - grant: all privileges
    - database: nextcloud.*
    - user: {{ config["user"] }}
    - host: localhost

I restarted the salt master service, tried to google possible solutions but to no avail. Hope someone can help me fix this!

1 Answers1

0

From the looks of it the indentation in your top.sls is off. The - mysql part needs to be indented with two more spaces like this:

base:
  'G@os:Rocky':
    - mysql
Leifb
  • 75
  • 8