Blob Blame History Raw
{%- from 'macros.jinja' import known_hosts %}
{% set git_repos = salt['pillar.get']('profile:web_jekyll:git_repos') %}

include:
  - profile.cron

jekyll_master_pgks:
  pkg.installed:
    - pkgs:
      - git
      - rsync
      # To find out the package name in the repo, run `zypper se --provides rubygem\(bundler\)`
      - ruby3.1-rubygem-bundler
      - ruby3.1-devel
      # Needed for planet to work with its database
      - sqlite3-devel
      - libopenssl-devel
      - gcc
      - gcc-c++
      - make
      - tar
      - aspell-devel
      - aspell-en

/home/web_jekyll/.ssh/id_ed25519:
  file.managed:
    - contents_pillar: profile:web_jekyll:ssh_private_key
    - mode: '0600'
    - user: web_jekyll

{{ known_hosts(salt['pillar.get']('profile:web_jekyll:server_list'), 'web_jekyll') }}

/home/web_jekyll/bin:
  file.directory:
    - user: root

/home/web_jekyll/bin/fetch_build_and_rsync_jekyll:
  cron.present:
    - user: web_jekyll
    - minute: 0
  file.managed:
    - context:
        git_dirs: {{ git_repos }}
        server_list: {{ pillar['profile']['web_jekyll']['server_list'] }}
    - mode: '0755'
    - source: salt://profile/jekyll/files/git_pull_and_update.sh.jinja
    - template: jinja
    - user: root

/home/web_jekyll/git:
  file.directory:
    - user: web_jekyll

/home/web_jekyll/jekyll:
  file.directory:
    - user: web_jekyll

/home/web_jekyll/log:
  file.directory:
    - user: web_jekyll

# clone git repos
{% for dir, data in git_repos.items() %}
{{ data.repo }}:
  git.cloned:
    - branch: {{ data.get('branch', 'master') }}
    - target: /home/web_jekyll/git/{{ dir }}
    - user: web_jekyll

/home/web_jekyll/jekyll/{{ dir }}:
  file.directory:
    - user: web_jekyll
{% endfor %}