Stasiek Michalski 6ff891
{% set git_repos = salt['pillar.get']('profile:web_jekyll:git_repos') %}
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
jekyll_master_pgks:
Stasiek Michalski 6ff891
  pkg.installed:
Stasiek Michalski 6ff891
    - pkgs:
Stasiek Michalski 6ff891
      - git
Stasiek Michalski 6ff891
      - rsync
Stasiek Michalski 2291b6
      # To find out the package name in the repo, run `zypper se --provides rubygem\(bundler\)`
Stasiek Michalski 2291b6
      - ruby2.5-rubygem-bundler
Stasiek Michalski 2291b6
      - ruby-devel
Stasiek Michalski 2291b6
      # Needed for planet to work with its database
Stasiek Michalski 2291b6
      - sqlite3-devel
Stasiek Michalski f23997
      - libopenssl-devel
Stasiek Michalski ed418d
      - gcc
Stasiek Michalski ed418d
      - gcc-c++
Stasiek Michalski ed418d
      - make
Stasiek Michalski ed418d
      - tar
Stasiek Michalski 94158c
      - aspell-devel
Stasiek Michalski 94158c
      - aspell-en
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
/home/web_jekyll/.ssh/id_ed25519:
Stasiek Michalski 6ff891
  file.managed:
Stasiek Michalski 2291b6
    - contents_pillar: profile:web_jekyll:ssh_private_key
Stasiek Michalski 6ff891
    - mode: 600
Stasiek Michalski 6ff891
    - user: web_jekyll
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
/home/web_jekyll/.ssh/known_hosts:
Stasiek Michalski 6ff891
  file.managed:
Stasiek Michalski 6ff891
    - contents_pillar: profile:web_jekyll:ssh_known_hosts
Stasiek Michalski 6ff891
    - mode: 644
Stasiek Michalski 6ff891
    - user: root
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
/home/web_jekyll/bin:
Stasiek Michalski 6ff891
  file.directory:
Stasiek Michalski 6ff891
    - user: root
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
/home/web_jekyll/bin/fetch_build_and_rsync_jekyll:
Stasiek Michalski 6ff891
  cron.present:
Stasiek Michalski 6ff891
    - user: web_jekyll
Stasiek Michalski 6ff891
    - minute: 0
Stasiek Michalski 6ff891
  file.managed:
Stasiek Michalski 6ff891
    - context:
Stasiek Michalski 6ff891
      git_dirs: {{ git_repos }}
Stasiek Michalski 2195d9
      server_list: {{ pillar['profile']['web_jekyll']['server_list'] }}
Stasiek Michalski 6ff891
    - mode: 755
Stasiek Michalski 6ff891
    - source: salt://profile/jekyll/files/git_pull_and_update.sh
Stasiek Michalski 6ff891
    - template: jinja
Stasiek Michalski 6ff891
    - user: root
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
/home/web_jekyll/git:
Stasiek Michalski 6ff891
  file.directory:
Stasiek Michalski 6ff891
    - user: web_jekyll
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
/home/web_jekyll/jekyll:
Stasiek Michalski 6ff891
  file.directory:
Stasiek Michalski 6ff891
    - user: web_jekyll
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
# clone git repos
Stasiek Michalski 6ff891
{% for dir, data in git_repos.items() %}
Stasiek Michalski 6ff891
{{ data.repo }}:
Stasiek Michalski 6ff891
  # salt 2018.3.3 introduced git.cloned - switch once our salt is new enough
Stasiek Michalski 6ff891
  git.latest:
Stasiek Michalski 6ff891
    - branch: {{ data.get('branch', 'master') }}
Stasiek Michalski 6ff891
    - target: /home/web_jekyll/git/{{ dir }}
Stasiek Michalski 6ff891
    # When checking out a non-default branch, salt will create a local branch based on HEAD by default.
Stasiek Michalski 6ff891
    # We need to specify "rev" to ensure we get the branch we want, and to make it tracking the branch from origin.
Stasiek Michalski 6ff891
    - rev: {{ data.get('branch', 'master') }}
Stasiek Michalski 6ff891
    - user: web_jekyll
Stasiek Michalski 6ff891
Stasiek Michalski 6ff891
/home/web_jekyll/jekyll/{{ dir }}:
Stasiek Michalski 6ff891
  file.directory:
Stasiek Michalski 6ff891
    - user: web_jekyll
Stasiek Michalski 6ff891
{% endfor %}