From f7a627673a51291651d53dd392c4ad817038c0fd Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Sat, 4 Apr 2026 13:16:07 +0800 Subject: [PATCH] feat(playbooks): rename root authorized key bootstrap playbook --- deploy_nodejs_vhosts.yml | 4 +-- roles/vhosts/nodejs/defaults/main.yml | 4 +-- roles/vhosts/nodejs/tasks/main.yml | 12 ++++----- roles/vhosts/python3/README.md | 9 +++++++ roles/vhosts/python3/defaults/main.yml | 6 +++++ roles/vhosts/python3/tasks/main.yml | 26 +++++++++++++++++++ setup-nodejs.yml | 3 ++- setup-python3.yml | 7 +++++ ..._only.yml => setup-root-authorized-key.yml | 0 9 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 roles/vhosts/python3/README.md create mode 100644 roles/vhosts/python3/defaults/main.yml create mode 100644 roles/vhosts/python3/tasks/main.yml create mode 100644 setup-python3.yml rename append_root_authorized_key_only.yml => setup-root-authorized-key.yml (100%) diff --git a/deploy_nodejs_vhosts.yml b/deploy_nodejs_vhosts.yml index 4ffd662..e529c3d 100644 --- a/deploy_nodejs_vhosts.yml +++ b/deploy_nodejs_vhosts.yml @@ -5,8 +5,8 @@ become: yes vars: # Choose Node.js version - # Examples: "20.x" (LTS), "18.x", "22.x", or specific version like "20.11.0" - nodejs_version: "20.x" + # Examples: "22.x" (LTS), "20.x", "18.x", or specific version like "20.11.0" + nodejs_version: "22.x" # Install Yarn package manager (default: true) # install_yarn: false diff --git a/roles/vhosts/nodejs/defaults/main.yml b/roles/vhosts/nodejs/defaults/main.yml index 66787fe..76ba9da 100644 --- a/roles/vhosts/nodejs/defaults/main.yml +++ b/roles/vhosts/nodejs/defaults/main.yml @@ -1,7 +1,7 @@ --- # Node.js version to install (LTS or specific version) -# Examples: "20.x", "18.x", "20.11.0", "20.19.6" -nodejs_version: "20.x" +# Examples: "22.x", "20.x", "18.x", "20.11.0", "20.19.6" +nodejs_version: "22.x" # Install Yarn package manager (default: true) install_yarn: true diff --git a/roles/vhosts/nodejs/tasks/main.yml b/roles/vhosts/nodejs/tasks/main.yml index 0844508..7e37801 100644 --- a/roles/vhosts/nodejs/tasks/main.yml +++ b/roles/vhosts/nodejs/tasks/main.yml @@ -78,11 +78,11 @@ update_cache: yes when: nodejs_needs_install | default(true) -- name: Install npm globally - npm: - name: npm - state: latest - global: yes +- name: Verify npm is available + command: npm --version + register: npm_version_check + changed_when: false + failed_when: false - name: Get current Yarn version command: yarn --version @@ -159,5 +159,5 @@ debug: msg: | Node.js version: {{ nodejs_installed_version | default('Not installed') }} - NPM version: {{ ansible_facts.packages.npm[0].version if ansible_facts.packages.npm is defined and ansible_facts.packages.npm else 'N/A' }} + NPM version: {{ npm_version_check.stdout if npm_version_check.rc == 0 else 'N/A' }} Yarn version: {{ yarn_version_check.stdout if yarn_version_check.rc == 0 and install_yarn | default(true) else 'Not installed' }} diff --git a/roles/vhosts/python3/README.md b/roles/vhosts/python3/README.md new file mode 100644 index 0000000..e865d42 --- /dev/null +++ b/roles/vhosts/python3/README.md @@ -0,0 +1,9 @@ +# python3 + +Minimal Python 3 toolchain role for Debian-based hosts. + +Installs: + +- `python3` +- `python3-pip` +- `python3-venv` diff --git a/roles/vhosts/python3/defaults/main.yml b/roles/vhosts/python3/defaults/main.yml new file mode 100644 index 0000000..3bf6e5a --- /dev/null +++ b/roles/vhosts/python3/defaults/main.yml @@ -0,0 +1,6 @@ +--- +python3_packages: + - python3 + - python3-pip + - python3-venv +python3_install_recommends: false diff --git a/roles/vhosts/python3/tasks/main.yml b/roles/vhosts/python3/tasks/main.yml new file mode 100644 index 0000000..a79472f --- /dev/null +++ b/roles/vhosts/python3/tasks/main.yml @@ -0,0 +1,26 @@ +--- +- name: Ensure Python 3 toolchain is installed + ansible.builtin.apt: + name: "{{ python3_packages }}" + state: present + install_recommends: "{{ python3_install_recommends }}" + update_cache: true + environment: + DEBIAN_FRONTEND: noninteractive + APT_LISTCHANGES_FRONTEND: none + become: true + when: + - ansible_facts.os_family == "Debian" + +- name: Verify Python 3 installation + ansible.builtin.command: python3 --version + register: python3_version_check + changed_when: false + when: + - ansible_facts.os_family == "Debian" + +- name: Show Python 3 version + ansible.builtin.debug: + msg: "{{ python3_version_check.stdout }}" + when: + - ansible_facts.os_family == "Debian" diff --git a/setup-nodejs.yml b/setup-nodejs.yml index 0d997f5..7bce8be 100644 --- a/setup-nodejs.yml +++ b/setup-nodejs.yml @@ -1,5 +1,6 @@ -- name: Setup Docker Engine +- name: Setup Node.js hosts: all become: true + gather_facts: true roles: - roles/vhosts/nodejs/ diff --git a/setup-python3.yml b/setup-python3.yml new file mode 100644 index 0000000..2846a9d --- /dev/null +++ b/setup-python3.yml @@ -0,0 +1,7 @@ +--- +- name: Setup Python 3 + hosts: all + become: true + gather_facts: true + roles: + - roles/vhosts/python3/ diff --git a/append_root_authorized_key_only.yml b/setup-root-authorized-key.yml similarity index 100% rename from append_root_authorized_key_only.yml rename to setup-root-authorized-key.yml