Hello from MCP server

List Files | Just Commands | Repo | Logs

← back |
---
- name: Setup Development Environment
  hosts: all
  become: yes
  vars:
    dev_user: dev
    github_repo_ssh: ""

  tasks:
    - name: Install git
      apt:
        name: git
        state: present
        update_cache: yes

    - name: Check if Go is installed
      stat:
        path: /usr/local/go/bin/go
      register: go_installed

    - name: Download Go
      get_url:
        url: "https://go.dev/dl/go1.22.3.linux-amd64.tar.gz"
        dest: /tmp/go.tar.gz
      when: not go_installed.stat.exists

    - name: Extract Go
      unarchive:
        src: /tmp/go.tar.gz
        dest: /usr/local
        remote_src: yes
      when: not go_installed.stat.exists

    - name: Add Go to PATH for dev user
      lineinfile:
        path: "/home/{{ dev_user }}/.bashrc"
        line: 'export PATH=$PATH:/usr/local/go/bin'
        state: present

    - name: Generate SSH keypair for dev user
      user:
        name: "{{ dev_user }}"
        generate_ssh_key: yes
        ssh_key_bits: 4096
        ssh_key_type: ed25519
        ssh_key_comment: "{{ dev_user }}@{{ inventory_hostname }}"

    - name: Get public key
      slurp:
        src: "/home/{{ dev_user }}/.ssh/id_ed25519.pub"
      register: ssh_public_key

    - name: Display public key
      debug:
        msg: "{{ ssh_public_key.content | b64decode }}"

    - name: Add GitHub to known_hosts
      known_hosts:
        name: github.com
        key: "{{ lookup('pipe', 'ssh-keyscan github.com 2>/dev/null') }}"
        path: "/home/{{ dev_user }}/.ssh/known_hosts"
        state: present
      become_user: "{{ dev_user }}"
      when: github_repo_ssh != ""

    - name: Clone repository
      git:
        repo: "{{ github_repo_ssh }}"
        dest: "/home/{{ dev_user }}/pricebook-platform"
        accept_hostkey: yes
      become_user: "{{ dev_user }}"
      when: github_repo_ssh != ""