Initial commit
This commit is contained in:
commit
5dd57118b3
12 changed files with 177 additions and 0 deletions
5
.ansible-lint
Normal file
5
.ansible-lint
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
parseable: true
|
||||||
|
quiet: true
|
||||||
|
skip_list:
|
||||||
|
- '501'
|
||||||
|
use_default_rules: true
|
||||||
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
*.retry
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
.venv
|
||||||
|
.env
|
||||||
|
env
|
||||||
|
venv
|
||||||
|
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
.vault
|
||||||
|
.vaults/
|
||||||
|
vault
|
||||||
|
vaults/
|
||||||
41
.gitlab-ci.yml
Normal file
41
.gitlab-ci.yml
Normal 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
9
.prettier.json
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"singleQuote": true,
|
||||||
|
"printWidth": 90,
|
||||||
|
"tabWidth": 2,
|
||||||
|
"useTabs": false,
|
||||||
|
"bracketSpacing": true,
|
||||||
|
"parser": "yaml"
|
||||||
|
}
|
||||||
|
|
||||||
2
defaults/main.yml
Normal file
2
defaults/main.yml
Normal 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
19
meta/main.yml
Normal 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
58
tasks/main.yml
Normal 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
5
templates/nodesource.j2
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
|
||||||
|
|
||||||
|
Package: *
|
||||||
|
Pin: origin deb.nodesource.com
|
||||||
|
Pin-Priority: 600
|
||||||
4
templates/nodesource.list.j2
Normal file
4
templates/nodesource.list.j2
Normal 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
5
vars/archlinux.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
pre_packages: []
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- nodejs
|
||||||
|
- npm
|
||||||
7
vars/debian-buster.yml
Normal file
7
vars/debian-buster.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
pre_packages:
|
||||||
|
- gpg
|
||||||
|
- git
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- nodejs
|
||||||
|
- npm
|
||||||
8
vars/ubuntu-focal.yml
Normal file
8
vars/ubuntu-focal.yml
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
pre_packages:
|
||||||
|
- gpg
|
||||||
|
- gpg-agent
|
||||||
|
- openssh-client
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- nodejs
|
||||||
|
- npm
|
||||||
Reference in a new issue