Install ansible inside jenkins images

1 min read

ansible dibutuhkan untuk menjalankan automasi di lingkup Linux OS, jenkins image yang kita build dari awal belum dilengkapi dengan aplikasi ansible, untuk itu kita perlu mengedit docker-compose.yml serta menambahkan file Dockerfile di dalam folder ansible

vim docker-compose.yml
version: '3'
services: 
    jenkins:
        container_name: jenkins
        image: jenkins-ansible
        build: 
            context: ansible
        ports: 
            - "8080:8080"
        volumes: 
            - "./jenkins_home:/var/jenkins_home"
        networks: 
            - net
    remote_host:
        container_name: remote-host
        image: remote-host
        build: 
            context: centos7
        volumes: 
            - "./aws-s3.sh:/home/remote_user/script.sh"
        networks: 
            - net
    centos1:
        container_name: centos1
        image: centos1
        build: 
            context: OS
        volumes: 
            - "./OS/home/aws.sh:/home/centos1/aws.sh"
        networks: 
            - net
    db_host:
        container_name: db
        image: mysql:5.7
        environment: 
            - "MYSQL_ROOT_PASSWORD=12345"
        volumes: 
            - "./db_data:/var/lib/mysql"
        networks: 
            - net
    database:
        container_name: database
        image: mysql:5.7
        environment: 
            - "MYSQL_ROOT_PASSWORD=12345"
        volumes: 
            - "./database_data:/var/lib/mysql"
        networks: 
            - net
networks: 
    net: 

pada Dockerfile tambahkan script sebagai berikut:

FROM jenkins/jenkins

USER root

RUN apt-get update -y && \
    apt-get install ansible vim net-tools sshpass  -y
    

USER root
sudo docker-compose build
sudo docker-compose up -d
sudo docker exec -ti jenkins bash
ansible

membuat perintah sederhana dengan ansible, yang pertama adalah buat inventory host terlebih dahulu, hal ini saya letakan di folder ~/ansible

file hosts

[all:vars]
ansible_connection = ssh

[test]
test1 ansible_host=remote-host ansible_user=root ansible_private_key_file=/var/jenkins_home/ansible/remote_key

selanjut membuat playbook sederhana dengan nama play.yml

---
  - hosts: test
    tasks:
      - shell: echo "ini test sederhana create file " > /tmp/test.sederhana
      
      
jenkins@e4f63afaf131:~/ansible$ ansible-playbook -i hosts play.yml

lalu bagaimana cara intregasi ke dalam jenkins, sebelumnya harus install dulu model ansible di jenkins plugins

lalu buat new items, misalkan “ansibleku”

rubah play.yml sebagai berikut:

---
  - hosts: test
    tasks:
      - shell: echo "ini test sederhana create file " > /tmp/test.sederhana
      - debug:
          msg: "{{ MSG }}"

agar output terkesan tidak monoton dan berwarna sebaiknya install ansicolor

lalu configure items ex: “ansibleku”

setelah build with parametes hasilnya

Add Credentials Jenkins Account

sementara ini kita sudah build beberapa docker container, yaitu kali ini kita akan menambahkan credentials account centos1, database dan AWS Keys, maka masuk ke...
admin
45 sec read

Make permanent docker-compose file

sering kali ketika kita build docker-compose maka file yang sebelumnya kita buat di guest docker akan hilang, maka dari itu kita akan membuat permanent...
admin
58 sec read

Play With AWS S3 Console

database merupakan element penting untuk menyimpan data, pada episode kali ini kita akan membuat automation backup dan upload database ke AWS S3, sebelumnya daftar...
admin
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *