
Install Jenkins to AWS EC2 Instance With Ansible
Install Jenkins to AWS EC2 Instance With Ansible
Sesudah create AWS EC2 Instance menggunakan Terraform, selanjut nya install App Jenkins menggunakan Ansible, Struktur folder Ansible akan seperti ini.

inventory
[ip-server]
18.143.101.**
[all:vars]
ansible_user=ubuntu
ansible_ssh_private_key_file=/home/cehamot/BigprojectStudiDevops/mdrdani.pemroles/update-OS/tasks/main.yaml
- name: update server linux Debian/Ubuntu
shell: apt update
when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'
- name: update server linux redhat/centos
shell: apt update
when: ansible_distribution == 'CentOs' or ansible_distribution == 'Red Hat Enterprise Linux'roles/Jenkins/tasks/main.yaml
- name: Import Jenkins key from URL
ansible.builtin.get_url:
url: https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
dest: /usr/share/keyrings/jenkins-keyring.asc
- name: Dowload Long term jenkins release
ansible.builtin.apt_repository:
repo: "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/"
state: present
- name: Update Repository
shell: apt update
- name: Install Jenkins
apt:
name: jenkins
state: latest
- name: daemon-reload to pick up config changes
ansible.builtin.systemd:
daemon_reload: yes
- name: start jenkins
ansible.builtin.systemd:
name: jenkins
state: startedroles/java/tasks/main.yaml
- name: Install Java
become: yes
apt:
name: "{{ packages }}"
state: present
vars:
packages:
- openjdk-11-jreroles/docker/tasks/main.yaml
- name: Install depedencies
apt:
name: "{{item}}"
state: present
update_cache: yes
loop:
- apt-transport-https
- ca-certificates
- curl
- gnupg-agent
- software-properties-common
- name: Docker Official GPG key
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name : Repository Docker
apt_repository:
repo: deb https://download.docker.com/linux/ubuntu focal stable
state: present
- name: Install Docker
apt:
name: "{{item}}"
state: latest
update_cache: yes
loop:
- docker-ce
- docker-ce-cli
- containerd.io
- name: add user mod
command: sudo usermod -aG docker jenkins
- name: Make Sure docker is running
service:
name: docker
state: started
enabled: yesserver-jenkins-playbook.yaml
- name: Server Jenkins
hosts: ip-server
become: yes
roles:
- roles/update-os
- roles/java
- roles/jenkins
- roles/dockerrun
$ ansible-playbook -i inventory server-jenkins-playbook.yaml
Oke Jenkins sudah running, selanjutnya akses menggunakan browser ke IP Public instance. Jika belum bisa di akses seperti gambar di bawah ini maka kita harus setting security instance nya untuk allow port 8080.

Ke bagian Security Groups, Edit Inbound tambahkan seperti ini. Save rules

balik ke browser lagi akses menggunakan port 8080

untuk unlock jenkins kita harus membuka file /var/lib/jenkins/secrets/initialAdminPassword di instance.

copy kan password ke dalam kolom Administrator password tersebut dan continue.

Pilih saja install suggested plugins nanti akan di install plugin2 yang biasa nya di perlukan. Masukan username, password dan full name. Save and continue.

sampai di sini pastikan URL sama dengan yang link browser di atas nya. save and finish
Yey Start using jenkins !!

Conclusion
Dengan menggunakan Docker Compose, kita dapat dengan mudah menjalankan aplikasi Rumah Sakit Sejahtera secara lokal. Ini memungkinkan pengembang untuk menguji dan mengembangkan aplikasi dalam lingkungan yang konsisten dan terisolasi. Selain itu, penggunaan Docker Compose juga memudahkan dalam mengelola dependensi dan konfigurasi aplikasi.
