diff --git a/bootstrap.sh b/bootstrap.sh index 68ca6dee..00ddad83 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -6,9 +6,11 @@ sudo apt install -y git curl python3-venv python3-pip git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0 +echo +echo "# BEGIN ANSIBLE MANAGED BLOCK for asdf" >> "$HOME/.bashrc" echo '. "$HOME/.asdf/asdf.sh"' >> "$HOME/.bashrc" echo '. "$HOME/.asdf/completions/asdf.bash"' >> "$HOME/.bashrc" -. "$HOME/.bashrc" +echo "# END ANSIBLE MANAGED BLOCK for asdf" >> "$HOME/.bashrc" # # Install Ansible via asdf @@ -21,7 +23,10 @@ echo '. "$HOME/.asdf/completions/asdf.bash"' >> "$HOME/.bashrc" # Make a bin directory in the user's home directory # mkdir -p "$HOME/bin" +echo +echo "# BEGIN ANSIBLE MANAGED BLOCK FOR \$HOME/bin" echo 'export "PATH=$HOME/bin:$PATH"' >> "$HOME/.bashrc" +echo "# END ANSIBLE MANAGED BLOCK FOR \$HOME/bin" # # Install Workstation diff --git a/roles/asdf/tasks/main.yaml b/roles/asdf/tasks/main.yaml index 78f03f9b..69da9183 100644 --- a/roles/asdf/tasks/main.yaml +++ b/roles/asdf/tasks/main.yaml @@ -1,30 +1,30 @@ --- # -- name: install asdf - git: - repo: https://github.com/asdf-vm/asdf.git - dest: ~/.asdf - version: "{{ asdf_version }}" - update: no - tags: - - asdf - -- name: make bash version executable - file: - path: ~/.asdf/asdf.sh - mode: 0500 - tags: - - asdf - -- name: symlink to the asdf bash executable - file: - src: ~/.asdf/asdf.sh - dest: ~/bin/asdf - mode: 0500 - state: link - tags: - - asdf +# - name: install asdf +# git: +# repo: https://github.com/asdf-vm/asdf.git +# dest: ~/.asdf +# version: "{{ asdf_version }}" +# update: no +# tags: +# - asdf + +# - name: make bash version executable +# file: +# path: ~/.asdf/asdf.sh +# mode: 0500 +# tags: +# - asdf + +# - name: symlink to the asdf bash executable +# file: +# src: ~/.asdf/asdf.sh +# dest: ~/bin/asdf +# mode: 0500 +# state: link +# tags: +# - asdf - name: install asdf and associated completions blockinfile: @@ -37,16 +37,16 @@ tags: - asdf -- name: add the up-to-date ansible asdf plugin - shell: asdf plugin add ansible https://github.com/Bleacks/asdf-ansible-plugin.git - environment: - GITHUB_API_TOKEN: "{{ GITHUB_API_TOKEN }}" - register: ansible_plugin_add_result - changed_when: '"already added" not in ansible_plugin_add_result.stdout' - failed_when: "ansible_plugin_add_result.rc == 1" - tags: - - asdf - - new-ansible +# - name: add the up-to-date ansible asdf plugin +# shell: asdf plugin add ansible https://github.com/Bleacks/asdf-ansible-plugin.git +# environment: +# GITHUB_API_TOKEN: "{{ GITHUB_API_TOKEN }}" +# register: ansible_plugin_add_result +# changed_when: '"already added" not in ansible_plugin_add_result.stdout' +# failed_when: "ansible_plugin_add_result.rc == 1" +# tags: +# - asdf +# - new-ansible - name: get asdf version shell: asdf version @@ -130,21 +130,3 @@ tags: - asdf -- name: remove global tools installed by deprecated Ansible plays - include_tasks: removes.yml - args: - apply: - become: yes - loop: "{{ removes }}" - loop_control: - loop_var: remove_item - tags: - - asdf - -- name: remove local tools installed by deprecated Ansible plays - include_tasks: removes.yml - loop: "{{ cleans }}" - loop_control: - loop_var: remove_item - tags: - - asdf diff --git a/roles/asdf/tasks/tools.yml b/roles/asdf/tasks/tools.yml index c299e7ed..f63d4db2 100644 --- a/roles/asdf/tasks/tools.yml +++ b/roles/asdf/tasks/tools.yml @@ -6,7 +6,9 @@ environment: GITHUB_API_TOKEN: "{{ GITHUB_API_TOKEN }}" register: plugin_add_result - changed_when: "plugin_add_result.rc == 0" + changed_when: + - plugin_add_result.rc == 0 + - '"already added" not in plugin_add_result.stdout' failed_when: "plugin_add_result.rc == 1" tags: - asdf @@ -16,7 +18,22 @@ environment: GITHUB_API_TOKEN: "{{ GITHUB_API_TOKEN }}" register: tool_version_installed_result - changed_when: "'Downloading' in tool_version_installed_result.stdout" + changed_when: "'already installed' not in tool_version_installed_result.stdout" + tags: + - asdf + +- name: get the current global version for {{ tool_item.name }} + shell: asdf list {{ tool_item.name }} | grep '*' | cut -f 2 -d '*' + register: current_tool_version_result + changed_when: false + tags: + - asdf + +- name: get the latest available version for {{ tool_item.name }} + shell: asdf list all {{ tool_item.name }} | tail -n 1 + register: latest_tool_version_result + changed_when: false + failed_when: latest_tool_version_result == "" tags: - asdf @@ -25,7 +42,7 @@ environment: GITHUB_API_TOKEN: "{{ GITHUB_API_TOKEN }}" register: plugin_global_version_set_result - changed_when: "tool_version_installed_result is changed" + changed_when: current_tool_version_result.stdout != latest_tool_version_result.stdout failed_when: "plugin_global_version_set_result.rc > 0" tags: - asdf diff --git a/roles/asdf/vars/main.yml b/roles/asdf/vars/main.yml index 1cda1a37..603744a8 100644 --- a/roles/asdf/vars/main.yml +++ b/roles/asdf/vars/main.yml @@ -1,76 +1,47 @@ --- # -cleans: -- { path: "~/go/bin", pattern: "^go1\\..*$"} -- { path: "~/go/bin", pattern: "^protoc-gen-go(-grpc)?$"} -- { path: "~/", pattern: "^sdk$"} - -removes: -- { path: "/opt", pattern: "^op$"} -- { path: "/usr/bin", pattern: "^op$"} -- { path: "/opt", pattern: "^go$"} -- { path: "/usr/bin", pattern: "^go(fmt)?$"} -- { path: "/usr/share", pattern: "^go-tools$"} -- { path: "/opt", pattern: "^helm$"} -- { path: "/usr/bin", pattern: "^helm$"} -- { path: "/opt", pattern: "^kube(ctx|ns)$"} -- { path: "/usr/bin", pattern: "^kube(ctx|ns)$"} -- { path: "/etc/bash_completion.d", pattern: "^kube(ctx|ns)$"} -- { path: "/opt", pattern: "^kubeseal$"} -- { path: "/usr/bin", pattern: "^kubeseal$"} -- { path: "/opt", pattern: "^kustomize-.*"} -- { path: "/usr/bin", pattern: "^kustomize$"} -- { path: "/opt", pattern: "^minikube$"} -- { path: "/usr/bin", pattern: "^minikube$"} -- { path: "/opt", pattern: "^skaffold$"} -- { path: "/usr/bin", pattern: "^skaffold$"} -- { path: "/opt", pattern: "^terraform$"} -- { path: "/usr/bin", pattern: "^terraform$"} -- { path: "/opt", pattern: "^terragrunt$"} -- { path: "/usr/bin", pattern: "^terragrunt$"} - tools: - { name: "1password-cli", version: "{{ op_cli_version }}"} -- { name: "act", version: "{{ act_version }}"} -- { name: "ant", version: "{{ ant_version }}"} +# - { name: "act", version: "{{ act_version }}"} +# - { name: "ant", version: "{{ ant_version }}"} - { name: "awscli", version: "{{ awscli_version }}"} - { name: "aws-vault", version: "{{ aws_vault_version }}"} -- { name: "bazel", version: "{{ bazel_version }}"} +# - { name: "bazel", version: "{{ bazel_version }}"} - { name: "chezmoi", version: "{{ chezmoi_version }}"} - { name: "direnv", version: "{{ direnv_version }}"} - { name: "github-cli", version: "{{ github_cli_version }}"} -- { name: "golang", version: "{{ golang_version }}"} -- { name: "golangci-lint", version: "{{ golangci_lint_version }}"} -- { name: "gomigrate", version: "{{ gomigrate_version }}"} -- { name: "gradle", version: "{{ gradle_version }}"} -- { name: "grpcurl", version: "{{ grpcurl_version }}"} -- { name: "helm", "version": "{{ helm_version }}"} -- { name: "java", version: "{{ java_version }}"} +# - { name: "golang", version: "{{ golang_version }}"} +# - { name: "golangci-lint", version: "{{ golangci_lint_version }}"} +# - { name: "gomigrate", version: "{{ gomigrate_version }}"} +# - { name: "gradle", version: "{{ gradle_version }}"} +# - { name: "grpcurl", version: "{{ grpcurl_version }}"} +# - { name: "helm", "version": "{{ helm_version }}"} +# - { name: "java", version: "{{ java_version }}"} # - { name: "jq", version: "{{ jq_version }}"} -- { name: "k6", version: "{{ k6_version }}"} -- { name: "k9s", version: "{{ k9s_version }}"} -- { name: "kind", version: "{{ kind_version }}"} -- { name: "ko", version: "{{ ko_version }}"} -- { name: "krew", version: "{{ krew_version }}"} -- { name: "kubectl", version: "{{ kubectl_version }}"} -- { name: "kubeseal", version: "{{ kubeseal_version }}"} -- { name: "kustomize", version: "{{ kustomize_version }}"} +# - { name: "k6", version: "{{ k6_version }}"} +# - { name: "k9s", version: "{{ k9s_version }}"} +# - { name: "kind", version: "{{ kind_version }}"} +# - { name: "ko", version: "{{ ko_version }}"} +# - { name: "krew", version: "{{ krew_version }}"} +# - { name: "kubectl", version: "{{ kubectl_version }}"} +# - { name: "kubeseal", version: "{{ kubeseal_version }}"} +# - { name: "kustomize", version: "{{ kustomize_version }}"} # - { name: "linkerd", version: "{{ linkerd_version }}"} -- { name: "mage", version: "{{ mage_version }}"} -- { name: "make", version: "{{ make_version }}"} -- { name: "maven", version: "{{ maven_version }}"} -- { name: "minikube", version: "{{ minikube_version }}"} -- { name: "nancy", version: "{{ nancy_version }}"} -- { name: "nodejs", version: "{{ nodejs_version }}"} -- { name: "protoc", version: "{{ protoc_version }}"} -- { name: "protoc-gen-go", version: "{{ protoc_gen_version }}"} -- { name: "protoc-gen-go-grpc", version: "{{ protoc_gen_grpc_version }}"} -- { name: "semver", version: "{{ semver_version }}"} -- { name: "skaffold", version: "{{ skaffold_version }}"} -- { name: "sops", version: "{{ sops_version }}"} -- { name: "swag", version: "{{ swag_version }}"} -- { name: "terraform", version: "{{ terraform_version }}"} -- { name: "terragrunt", version: "{{ terragrunt_version }}"} -- { name: "tflint", version: "{{ tflint_version }}"} -- { name: "yq", version: "{{ yq_version }}"} +# - { name: "mage", version: "{{ mage_version }}"} +# - { name: "make", version: "{{ make_version }}"} +# - { name: "maven", version: "{{ maven_version }}"} +# - { name: "minikube", version: "{{ minikube_version }}"} +# - { name: "nancy", version: "{{ nancy_version }}"} +# - { name: "nodejs", version: "{{ nodejs_version }}"} +# - { name: "protoc", version: "{{ protoc_version }}"} +# - { name: "protoc-gen-go", version: "{{ protoc_gen_version }}"} +# - { name: "protoc-gen-go-grpc", version: "{{ protoc_gen_grpc_version }}"} +# - { name: "semver", version: "{{ semver_version }}"} +# - { name: "skaffold", version: "{{ skaffold_version }}"} +# - { name: "sops", version: "{{ sops_version }}"} +# - { name: "swag", version: "{{ swag_version }}"} +# - { name: "terraform", version: "{{ terraform_version }}"} +# - { name: "terragrunt", version: "{{ terragrunt_version }}"} +# - { name: "tflint", version: "{{ tflint_version }}"} +# - { name: "yq", version: "{{ yq_version }}"} diff --git a/roles/local/tasks/main.yml b/roles/local/tasks/main.yml index 3cb21282..440f50ce 100644 --- a/roles/local/tasks/main.yml +++ b/roles/local/tasks/main.yml @@ -4,10 +4,10 @@ - name: add ~/bin to path blockinfile: path: "~/.bashrc" - marker: "# {mark} ANSIBLE MANAGED BLOCK FOR ~/bin" + marker: "# {mark} ANSIBLE MANAGED BLOCK FOR $HOME/bin" block: | # usermode programs will be installed here: - export PATH=~/bin:$PATH + export "PATH=$HOME/bin:$PATH" tags: - local diff --git a/versions.yml b/versions.yml index 5a97f7e8..afc70ae1 100644 --- a/versions.yml +++ b/versions.yml @@ -3,57 +3,57 @@ # https://dl.pstmn.io/download/version/5.0.0/linux64 #Ansible -ansible_minimum_version: 2.6.0 +ansible_minimum_version: 2.10.17 #Apache Studio studio_version: 2.0.0 studio_build: 20210717-M17 #asdf managed tool versions -act_version: latest -ant_version: latest +# act_version: latest +# ant_version: latest asdf_version: v0.10.2 awscli_version: latest aws_vault_version: latest -bazel_version: latest +# bazel_version: latest chezmoi_version: latest direnv_version: latest github_cli_version: latest -golang_version: latest -golangci_lint_version: latest -gomigrate_version: latest -gradle_version: latest -grpcurl_version: latest -helm_version: latest -java_version: openjdk-17.0.2 -jq_version: latest -k6_version: latest -k9s_version: latest -kind_version: latest -ko_version: 0.12.0 -krew_version: latest -kubectl_version: latest -kubeseal_version: 0.18.2 -kustomize_version: latest -linkerd_version: 2.12.0 -mage_version: latest -make_version: latest -maven_version: latest -minikube_version: latest -nancy_version: latest -nodejs_version: latest +# golang_version: latest +# golangci_lint_version: latest +# gomigrate_version: latest +# gradle_version: latest +# grpcurl_version: latest +# helm_version: latest +# java_version: openjdk-17.0.2 +# jq_version: latest +# k6_version: latest +# k9s_version: latest +# kind_version: latest +# ko_version: 0.12.0 +# krew_version: latest +# kubectl_version: latest +# kubeseal_version: 0.18.2 +# kustomize_version: latest +# linkerd_version: 2.12.0 +# mage_version: latest +# make_version: latest +# maven_version: latest +# minikube_version: latest +# nancy_version: latest +# nodejs_version: latest op_cli_version: latest -protoc_version: latest -protoc_gen_version: latest -protoc_gen_grpc_version: latest -semver_version: latest -skaffold_version: latest -sops_version: latest -swag_version: 1.16.2 -terraform_version: latest -terragrunt_version: latest -tflint_version: latest -yq_version: latest +# protoc_version: latest +# protoc_gen_version: latest +# protoc_gen_grpc_version: latest +# semver_version: latest +# skaffold_version: latest +# sops_version: latest +# swag_version: 1.16.2 +# terraform_version: latest +# terragrunt_version: latest +# tflint_version: latest +# yq_version: latest #go manaaged tool versions delve_version: latest diff --git a/workstation.yml b/workstation.yml index 5c655fb7..7afe89e3 100644 --- a/workstation.yml +++ b/workstation.yml @@ -16,32 +16,32 @@ vars_files: - versions.yml roles: - - common - - communication - - development - - containerization - - networking + # - common + # - communication + # - development + # - containerization + # - networking - iac - - java - - jmeter - - zaproxy - - burp_suite - - sqlmap - - spotbugs - - firefox_de - - google_chrome - - dbeaver - - apache_directory_studio - - eclipse - - umlet - - soapui - - micro - - pencil - - postman + # - java + # - jmeter + # - zaproxy + # - burp_suite + # - sqlmap + # - spotbugs + # - firefox_de + # - google_chrome + # - dbeaver + # - apache_directory_studio + # - eclipse + # - umlet + # - soapui + # - micro + # - pencil + # - postman - ratpoison - - cloud - - visual_studio - - security + # - cloud + # - visual_studio + # - security - hosts: localhost connection: local @@ -60,8 +60,8 @@ roles: - local - asdf - - go + # - go - codium - - krew + # - krew - kubenav - - freemind + # - freemind