Initial commit

This commit is contained in:
Sonny Bakker 2020-11-07 21:47:38 +01:00
commit 5dd57118b3
12 changed files with 177 additions and 0 deletions

5
.ansible-lint Normal file
View file

@ -0,0 +1,5 @@
parseable: true
quiet: true
skip_list:
- '501'
use_default_rules: true

14
.gitignore vendored Normal file
View file

@ -0,0 +1,14 @@
*.retry
*.swp
.venv
.env
env
venv
node_modules/
.vault
.vaults/
vault
vaults/

41
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,41 @@
stages:
- lint
- test
cache:
key: "$CI_COMMIT_REF_SLUG"
paths:
- .cache/pip
- node_modules/
lint:
stage: lint
image: python:3.7
before_script:
- pip install ansible ansible-lint --quiet
script:
- ansible-lint playbook.yml
only:
refs:
- development
- merge_requests
pretty-lint:
stage: lint
image: node:12
before_script:
- npm install
script:
- npx prettier "**/*.yml" --check
only:
refs:
- development
- merge_requests
syntax-test:
stage: test
image: python:3.7
before_script:
- pip install ansible ansible-lint --quiet
script:
- ansible-playbook playbook.yml --syntax-check

9
.prettier.json Normal file
View file

@ -0,0 +1,9 @@
{
"singleQuote": true,
"printWidth": 90,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"parser": "yaml"
}

2
defaults/main.yml Normal file
View file

@ -0,0 +1,2 @@
node_version: "12"
node_gpg_key: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key"

19
meta/main.yml Normal file
View file

@ -0,0 +1,19 @@
dependencies: []
galaxy_info:
author: sonny
description: "NPM setup"
license: "license GPLv3"
min_ansible_version: 2.7
issue_tracker_url: "https://git.fudiggity.nl/sonny/ansible-playbooks/-/issues"
platforms:
- name: Debian
versions:
- buster
- name: Ubuntu
versions:
- focal
- name: Archlinux
galaxy_tags:
- development
- web

58
tasks/main.yml Normal file
View file

@ -0,0 +1,58 @@
- name: load OS specific vars
include_vars: "{{ item }}"
with_first_found:
- files:
- "{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml"
- "{{ ansible_distribution|lower }}.yml"
- "{{ ansible_os_family|lower }}.yml"
paths:
- "{{ role_path }}/vars"
- name: update apt cache
become: true
apt:
update_cache: yes
when: ansible_facts['os_family'] == "Debian" or ansible_facts['os_family'] == "Ubuntu"
- name: update pacman cache
become: true
pacman:
update_cache: yes
when: ansible_facts['os_family'] == "Archlinux"
- name: install needed tools
become: yes
package:
name: "{{ item }}"
state: present
loop: "{{ pre_packages }}"
- name: add nodesource apt key
become: yes
apt_key:
url: "{{ node_gpg_key }}"
state: present
when: ansible_facts['os_family'] == "Debian" or ansible_facts['os_family'] == "Ubuntu"
- name: add nodesource source
become: yes
template:
src: "nodesource.list.j2"
dest: "/etc/apt/sources.list.d/nodesource.list"
mode: "0600"
when: ansible_facts['os_family'] == "Debian" or ansible_facts['os_family'] == "Ubuntu"
- name: create apt pinning file
become: yes
template:
src: "nodesource.j2"
dest: "/etc/apt/preferences.d/nodesource"
mode: "0644"
when: ansible_facts['os_family'] == "Debian" or ansible_facts['os_family'] == "Ubuntu"
- name: install front-end packages
become: yes
package:
name: "{{ item }}"
state: present
loop: "{{ packages }}"

5
templates/nodesource.j2 Normal file
View file

@ -0,0 +1,5 @@
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
Package: *
Pin: origin deb.nodesource.com
Pin-Priority: 600

View file

@ -0,0 +1,4 @@
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
deb https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release}} main
deb-src https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main

5
vars/archlinux.yml Normal file
View file

@ -0,0 +1,5 @@
pre_packages: []
packages:
- nodejs
- npm

7
vars/debian-buster.yml Normal file
View file

@ -0,0 +1,7 @@
pre_packages:
- gpg
- git
packages:
- nodejs
- npm

8
vars/ubuntu-focal.yml Normal file
View file

@ -0,0 +1,8 @@
pre_packages:
- gpg
- gpg-agent
- openssh-client
packages:
- nodejs
- npm