|
1 | 1 | - name: Elixir Setup |
2 | 2 | hosts: "{{ host }}" |
| 3 | + |
3 | 4 | vars: |
4 | | - erlang_version: 26.0 |
5 | | - elixir_version: 1.16.2-otp-26 |
| 5 | + ansible_ssh_user: "{{ admin_user }}" |
6 | 6 |
|
7 | 7 | tasks: |
8 | 8 | # Install required packages |
9 | 9 | - name: Update apt and install required system packages |
10 | 10 | become: true |
11 | | - apt: |
| 11 | + ansible.builtin.apt: |
12 | 12 | pkg: |
13 | 13 | - build-essential |
14 | 14 | - autoconf |
15 | 15 | - m4 |
16 | 16 | - libncurses5-dev |
17 | | - - libwxgtk3.2-dev |
18 | | - - libwxgtk-webview3.2-dev |
19 | 17 | - libgl1-mesa-dev |
20 | 18 | - libglu1-mesa-dev |
21 | 19 | - libpng-dev |
|
25 | 23 | - fop |
26 | 24 | - libxml2-utils |
27 | 25 | - libncurses-dev |
28 | | - - openjdk-17-jdk |
29 | 26 | state: latest |
30 | 27 | update_cache: true |
31 | | - vars: |
32 | | - ansible_ssh_user: "{{ admin_user }}" |
33 | 28 |
|
34 | | - - name: Clone asdf repository into ~/.asdf |
35 | | - ansible.builtin.git: |
36 | | - name: https://github.com/asdf-vm/asdf.git |
37 | | - dest: ~/.asdf |
38 | | - single_branch: yes |
39 | | - version: v0.14.0 |
| 29 | + ########## Install libssl1.1 ########## |
| 30 | + - name: Check if libssl1.1 is installed |
| 31 | + become: true |
| 32 | + ansible.builtin.shell: |
| 33 | + cmd: dpkg -l | grep libssl1.1 |
| 34 | + register: libssl_check |
| 35 | + changed_when: false |
| 36 | + failed_when: libssl_check.rc not in [0, 1] |
40 | 37 |
|
41 | | - - name: Insert lines to ~/.bashrc to source asdf |
42 | | - ansible.builtin.blockinfile: |
43 | | - path: "/home/{{ ansible_user }}/.bashrc" |
44 | | - block: | |
45 | | - . "$HOME/.asdf/asdf.sh" |
46 | | - . "$HOME/.asdf/completions/asdf.bash" |
| 38 | + - name: Download libssl1.1 |
| 39 | + become: true |
| 40 | + register: download_libssl |
| 41 | + ansible.builtin.get_url: |
| 42 | + url: http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1w-0+deb11u1_amd64.deb |
| 43 | + dest: /root/ |
| 44 | + when: libssl_check.rc != 0 |
47 | 45 |
|
48 | | - - name: Add Erlang plugin to asdf |
49 | | - shell: /home/{{ ansible_user }}/.asdf/bin/asdf plugin add erlang |
| 46 | + - name: Install libssl1.1 |
| 47 | + become: true |
| 48 | + ansible.builtin.apt: |
| 49 | + deb: "{{ download_libssl.dest }}" |
| 50 | + when: libssl_check.rc != 0 |
50 | 51 |
|
51 | | - - name: Add Erlang version to asdf |
52 | | - shell: /home/{{ ansible_user }}/.asdf/bin/asdf install erlang {{ erlang_version }} |
| 52 | + ########## Install Erlang 26.2.1-1 ########## |
| 53 | + - name: Check if Erlang 26.2.1-1 is installed |
| 54 | + become: true |
| 55 | + ansible.builtin.shell: |
| 56 | + cmd: dpkg -l | grep esl-erlang |
| 57 | + register: erlang_check |
| 58 | + changed_when: false |
| 59 | + failed_when: erlang_check.rc not in [0, 1] |
53 | 60 |
|
54 | | - - name: Set Erlang version as global |
55 | | - shell: /home/{{ ansible_user }}/.asdf/bin/asdf global erlang {{ erlang_version }} |
| 61 | + - name: Download Erlang 26.2.1-1 |
| 62 | + become: true |
| 63 | + register: download_erlang |
| 64 | + ansible.builtin.get_url: |
| 65 | + url: https://binaries2.erlang-solutions.com/debian/pool/contrib/e/esl-erlang/esl-erlang_26.2.1-1~debian~bullseye_amd64.deb |
| 66 | + dest: /root/ |
| 67 | + when: erlang_check.rc != 0 |
56 | 68 |
|
57 | | - - name: Add Elixir plugin to asdf |
58 | | - shell: /home/{{ ansible_user }}/.asdf/bin/asdf plugin add elixir |
| 69 | + - name: Install Erlang 26.2.1-1 |
| 70 | + become: true |
| 71 | + ansible.builtin.apt: |
| 72 | + deb: "{{ download_erlang.dest }}" |
| 73 | + when: erlang_check.rc != 0 |
59 | 74 |
|
60 | | - - name: Add Elixir version to asdf |
61 | | - shell: /home/{{ ansible_user }}/.asdf/bin/asdf install elixir {{ elixir_version }} |
| 75 | + ########## Install Elixir v1.16.2-otp-26 ########## |
| 76 | + - name: Check if Elixir v1.16.2 is installed |
| 77 | + become: true |
| 78 | + ansible.builtin.shell: |
| 79 | + cmd: elixir --version | grep "Elixir 1.16.2" |
| 80 | + register: elixir_check |
| 81 | + changed_when: false |
| 82 | + failed_when: elixir_check.rc not in [0, 1] |
62 | 83 |
|
63 | | - - name: Set Elixir version as global |
64 | | - shell: /home/{{ ansible_user }}/.asdf/bin/asdf global elixir {{ elixir_version }} |
| 84 | + - name: Download Elixir v1.16.2-otp-26 |
| 85 | + become: true |
| 86 | + register: download_elixir |
| 87 | + ansible.builtin.get_url: |
| 88 | + url: https://github.com/elixir-lang/elixir/releases/download/v1.16.2/elixir-otp-26.zip |
| 89 | + dest: /root/ |
| 90 | + when: elixir_check.rc != 0 |
| 91 | + |
| 92 | + - name: Install Elixir v1.16.2-otp-26 |
| 93 | + become: true |
| 94 | + ansible.builtin.unarchive: |
| 95 | + remote_src: true |
| 96 | + src: "{{ download_elixir.dest }}" |
| 97 | + dest: /usr/local/ |
| 98 | + when: elixir_check.rc != 0 |
0 commit comments