diff --git a/map.jinja b/map.jinja --- a/map.jinja +++ b/map.jinja @@ -54,17 +54,37 @@ }, }, default='FreeBSD') %} +{% set packages_prefixes = salt['grains.filter_by']({ + 'Debian': { + 'python2': '', + 'python3': 'python3-', + }, + 'RedHat': { + 'python2': 'python2-', + 'python3': 'python3-', + }, + 'FreeBSD' : { + 'python2': 'py27-', + 'python3': 'py36-', + 'rubygem': 'rubygem-', + }, +}, default='Debian') %} + {% set packages = salt['grains.filter_by']({ 'Debian' : { 'ag': 'silversearcher-ag', 'aspell-fr': 'aspell-fr', + 'aspell-en': 'aspell-en', 'certbot': 'certbot', 'cppunit': 'libcppunit-dev', 'emacs': 'emacs-nox', 'mariadb': 'mariadb-server', + 'node': 'nodejs', 'sphinx': 'python3-sphinx', 'tcltls': 'tcl-tls', + 'tdom': 'tdom', 'varnish': 'varnish', + 'verbiste': 'verbiste', }, 'RedHat': { 'ag': 'the_silver_searcher', @@ -72,7 +92,9 @@ 'certbot': 'python2-certbot', 'cppunit': 'cppunit-devel', 'emacs': 'emacs-nox', + 'exiftool': 'perl-Image-ExifTool', 'mariadb': 'mariadb-server', + 'node': 'nodejs', 'sphinx': 'python3-sphinx', 'tcltls': 'tcltls', 'varnish': 'varnish', @@ -91,12 +113,17 @@ 'FreeBSD' : { 'ag': 'the_silver_searcher', 'aspell-fr': 'fr-aspell', + 'aspell-en': 'en-aspell', 'certbot': 'py27-certbot', 'cppunit': 'cppunit', 'emacs': 'emacs-nox11', + 'exiftool': 'p5-Image-ExifTool-devel', 'mariadb': 'mariadb101-server', + 'node': 'node', 'sphinx': 'py27-sphinx', 'tcltls': 'tcltls', + 'tdom': 'tDOM', 'varnish': 'varnish5', + 'verbiste': 'fr-verbiste', }, }, default='Debian') %} diff --git a/roles/devserver/init.sls b/roles/devserver/init.sls new file mode 100644 --- /dev/null +++ b/roles/devserver/init.sls @@ -0,0 +1,10 @@ +# ------------------------------------------------------------- +# Salt — Provision a development server +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Project: Nasqueron +# Created: 2017-10-20 +# License: Trivial work, not eligible to copyright +# ------------------------------------------------------------- + +include: + - .userland-software diff --git a/roles/devserver/userland-software/dev.sls b/roles/devserver/userland-software/dev.sls new file mode 100644 --- /dev/null +++ b/roles/devserver/userland-software/dev.sls @@ -0,0 +1,119 @@ +# ------------------------------------------------------------- +# Salt — Provision dev software +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Project: Nasqueron +# Created: 2017-10-20 +# License: Trivial work, not eligible to copyright +# ------------------------------------------------------------- + +{% from "map.jinja" import packages, packages_prefixes with context %} + +# ------------------------------------------------------------- +# Java +# ------------------------------------------------------------- + +devserver_software_dev_java: + pkg: + - installed + - pkgs: + - openjdk8 + - apache-ant + - maven + +# ------------------------------------------------------------- +# .Net languages +# ------------------------------------------------------------- + +devserver_software_dev_dotnet: + pkg: + - installed + - pkgs: + - mono + +# ------------------------------------------------------------- +# Node +# ------------------------------------------------------------- + +devserver_software_dev_node: + pkg: + - installed + - pkgs: + - {{ packages.node }} + - npm + +devserver_node_packages: + npm.installed: + - pkgs: + - bower + - browserify + - gulp + - grunt + - react-tools + - require: + - pkg: devserver_software_dev_node + +# ------------------------------------------------------------- +# PHP +# ------------------------------------------------------------- + +devserver_software_dev_php: + pkg: + - installed + - pkgs: + - phpunit + +# ------------------------------------------------------------- +# Python +# ------------------------------------------------------------- + +devserver_software_dev_python: + pkg: + - installed + - pkgs: + - {{ packages_prefixes.python2 }}nltk + - {{ packages_prefixes.python2 }}numpy + - {{ packages_prefixes.python2 }}virtualenv + +# ------------------------------------------------------------- +# Ruby +# ------------------------------------------------------------- + +devserver_software_dev_ruby: + pkg: + - installed + - pkgs: + - {{ packages_prefixes.rubygem }}rubocop + +# ------------------------------------------------------------- +# Rust +# ------------------------------------------------------------- + +devserver_software_dev_rust: + pkg: + - installed + - pkgs: + - rust + +# ------------------------------------------------------------- +# TCL +# ------------------------------------------------------------- + +devserver_software_dev_tcl: + pkg: + - installed + - pkgs: + - rlwrap + - tcllib + - tclsoap + - {{ packages.tcltls }} + - {{ packages.tdom }} + +# ------------------------------------------------------------- +# Web development +# ------------------------------------------------------------- + +devserver_software_dev_web: + pkg: + - installed + - pkgs: + - memcached diff --git a/roles/devserver/userland-software/init.sls b/roles/devserver/userland-software/init.sls new file mode 100644 --- /dev/null +++ b/roles/devserver/userland-software/init.sls @@ -0,0 +1,16 @@ +# ------------------------------------------------------------- +# Salt — Provision software +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Project: Nasqueron +# Created: 2017-10-20 +# License: Trivial work, not eligible to copyright +# ------------------------------------------------------------- + +include: + # Shell server content + - roles/shellserver/userland-software/base + - roles/shellserver/userland-software/irc + - roles/shellserver/userland-software/web + # Software specific for development servers + - .dev + - .misc diff --git a/roles/devserver/userland-software/misc.sls b/roles/devserver/userland-software/misc.sls new file mode 100644 --- /dev/null +++ b/roles/devserver/userland-software/misc.sls @@ -0,0 +1,94 @@ +# ------------------------------------------------------------- +# Salt — Provision dev software +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Project: Nasqueron +# Created: 2017-10-20 +# License: Trivial work, not eligible to copyright +# ------------------------------------------------------------- + +{% from "map.jinja" import packages, packages_prefixes with context %} + +devserver_software_misc_vcs: + pkg: + - installed + - pkgs: + # VCS + - cvs + - fossil + - subversion + # Bridges + - cvs2svn + - {{ packages_prefixes.python2 }}hg-git + +devserver_software_misc_media: + pkg: + - installed + - pkgs: + - {{ packages.exiftool }} + - ffmpeg2theora + - opencore-amr + - opus + - speex + - speexdsp + - x265 + +devserver_software_misc_text_processing: + pkg: + - installed + - pkgs: + - antiword + - odt2txt + - texlive-full + +devserver_software_misc_security: + pkg: + - installed + - pkgs: + - aescrypt + - pwgen + - vault + +devserver_software_misc_tools: + pkg: + - installed + - pkgs: + - boxes + - cursive + - fusefs-s3fs + - gist + - p7zip + - primegen + - rsync + - unix2dos + {% if grains['os'] == 'FreeBSD' %} + - gawk + {% endif %} + +{% if grains['os'] == 'FreeBSD' %} +devserver_software_misc_ports: + pkg: + - installed + - pkgs: + - ccache + - portmaster + - portshaker + - porttools + - poudriere +{% endif %} + +devserver_software_misc_gadgets: + pkg: + - installed + - pkgs: + - asciiquarium + - binclock + - ditaa + - epte + - weatherspect + +devserver_software_misc_games: + pkg: + - installed + - pkgs: + - bsdgames + - textmaze diff --git a/roles/shellserver/userland-software/base.sls b/roles/shellserver/userland-software/base.sls --- a/roles/shellserver/userland-software/base.sls +++ b/roles/shellserver/userland-software/base.sls @@ -18,8 +18,10 @@ - pkgs: - bash - fish - - tcsh - zsh + {% if grains['os'] != 'FreeBSD' %} + - tcsh + {% endif %} # ------------------------------------------------------------- # Editors @@ -46,10 +48,12 @@ pkg: - installed - pkgs: + - mosh - cmatrix - figlet - nmap - toilet + - tmux - tree - whois - woof @@ -63,6 +67,9 @@ {% if grains['os'] == 'FreeBSD' %} - figlet-fonts - bind-tools + - sudo + - coreutils + - wget {% endif %} # ------------------------------------------------------------- @@ -76,9 +83,7 @@ - autoconf - automake - git - - arcanist - colordiff - - strace - cmake - valgrind - {{ packages.cppunit }} @@ -87,17 +92,19 @@ - php7.1-curl {% endif %} {% if grains['os'] != 'FreeBSD' %} + - arcanist - clang - llvm + - strace {% endif %} +{% if grains['os_family'] == 'Debian' %} dev_popular_libs: pkg: - installed - pkgs: - {% if grains['os_family'] == 'Debian' %} - libssl-dev - {% endif %} +{% endif %} # ------------------------------------------------------------- # Languages @@ -145,5 +152,6 @@ pkg: - installed - pkgs: - - verbiste + - {{ packages.verbiste }} - {{ packages['aspell-fr'] }} + - {{ packages['aspell-en'] }} diff --git a/roles/shellserver/userland-software/web.sls b/roles/shellserver/userland-software/web.sls --- a/roles/shellserver/userland-software/web.sls +++ b/roles/shellserver/userland-software/web.sls @@ -6,6 +6,8 @@ # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- +{% from "map.jinja" import packages with context %} + # ------------------------------------------------------------- # nginx # ------------------------------------------------------------- @@ -22,4 +24,4 @@ letsencrypt: pkg.installed: - - name: letsencrypt + - name: {{ packages.certbot }}