- name: Init server deps hosts: all remote_user: root vars: app_dir: "/home/{{ username }}/invoice" nvm_sh_dir: "/home/{{ username }}/.nvm/nvm.sh" tasks: - name: Create system user ansible.builtin.user: name: "{{ username }}" group: users create_home: yes shell: /bin/bash append: yes - name: Check if invoice directory exists ansible.builtin.file: path: "{{ app_dir }}" state: directory owner: "{{ username }}" group: users mode: "0755" - name: Add github to known hosts shell: | mkdir -p home/{{ username }}/.ssh/ ssh-keyscan github.com >> home/{{ username }}/.ssh/known_hosts args: executable: /bin/bash become: true become_user: "{{ username }}" - name: Check if nvm is installed ansible.builtin.stat: path: "{{ nvm_sh_dir }}" register: nvm_stat - name: Install nvm shell: > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash when: not nvm_stat.stat.exists - name: Install node.js shell: | . {{ nvm_sh_dir }} nvm install 24.13.0 args: executable: /bin/bash creates: "/home/{{ username }}/.nvm/versions/node/v24.13.0" - name: Install pm2 shell: | . {{ nvm_sh_dir }} npm list -g pm2 || npm install -g pm2 args: executable: /bin/bash