From 1a16b10ec57929e2706eb3f07d32ba01718eb627 Mon Sep 17 00:00:00 2001 From: krishnava11 <55794657+krishnava11@users.noreply.github.com> Date: Mon, 27 Jul 2020 00:44:03 +0530 Subject: [PATCH 1/5] Create README.md --- Jenkins_Build/README.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Jenkins_Build/README.md diff --git a/Jenkins_Build/README.md b/Jenkins_Build/README.md new file mode 100644 index 000000000..5b2e91d59 --- /dev/null +++ b/Jenkins_Build/README.md @@ -0,0 +1,40 @@ +## Provisiong EC2 Instance in AWS and Jenkins Deployment into Remote Server + +## Pre-Requisites + +- Requires Ansible 1.2 or newer +- Expects CentOS/RHEL 6 or 7 hosts +- python boto installation + +## Install Boto using following Command + + pip install boto + +## Provisioning EC2 Instance + +To Deploy EC2 instance, edit the `group_vars/all` file to set any EC2 configuration parameters you need & use `aws_ec2_launch.yml`. + +Deploy EC2 instance using below command: + + ansible-playbook aws_ec2_launch.yml + +## Jenkins Server Deployement + + +To Deploy Jenkins server using `site.yml`, first edit `hosts` file by adding remote ip's on which jenkins should be installed. + +Deploy Jenkins server on to remote IP with username and password into using below command: + + ANSIBLE_HOST_KEY_CHECKING=false ansible-playbook site.yml -i hosts --extra-vars 'ansible_ssh_pass=YOUR-SSH-PASSWORD-HERE ansible_ssh_user=YOUR-SSH-USERNAME-HERE' + +Deploy Jenkins server onto remote IP with .pem file using below command: + + ANSIBLE_HOST_KEY_CHECKING=false ansible-playbook site.yml -i hosts --private-key /mnt/test/cginnovpoc.pem + +Deploy Jenkins server standalone using below command: + + ansible-playbook site.yml + +When the playbook run completes, you should be able to see the Jenkins Server running on the port 8080. +Eg: localhost:8080 + From bddf0580e07105d66f22e749b0f726373f162889 Mon Sep 17 00:00:00 2001 From: krishnava11 <55794657+krishnava11@users.noreply.github.com> Date: Mon, 27 Jul 2020 00:46:33 +0530 Subject: [PATCH 2/5] Added Jenkins Deployement --- Jenkins_Build/aws_ec2_launch.yml | 24 +++++++++ Jenkins_Build/group_vars/all | 13 +++++ Jenkins_Build/hosts | 1 + Jenkins_Build/roles/jenkins/defaults/main.yml | 2 + Jenkins_Build/roles/jenkins/handlers/main.yml | 2 + Jenkins_Build/roles/jenkins/meta/main.yml | 53 +++++++++++++++++++ Jenkins_Build/roles/jenkins/tasks/main.yml | 26 +++++++++ Jenkins_Build/roles/jenkins/tests/inventory | 2 + Jenkins_Build/roles/jenkins/tests/test.yml | 5 ++ .../admin_9133444433618374529/config.xml | 49 +++++++++++++++++ Jenkins_Build/roles/jenkins/users/users.xml | 10 ++++ Jenkins_Build/roles/jenkins/vars/main.yml | 4 ++ Jenkins_Build/site.yml | 7 +++ 13 files changed, 198 insertions(+) create mode 100644 Jenkins_Build/aws_ec2_launch.yml create mode 100644 Jenkins_Build/group_vars/all create mode 100644 Jenkins_Build/hosts create mode 100644 Jenkins_Build/roles/jenkins/defaults/main.yml create mode 100644 Jenkins_Build/roles/jenkins/handlers/main.yml create mode 100644 Jenkins_Build/roles/jenkins/meta/main.yml create mode 100644 Jenkins_Build/roles/jenkins/tasks/main.yml create mode 100644 Jenkins_Build/roles/jenkins/tests/inventory create mode 100644 Jenkins_Build/roles/jenkins/tests/test.yml create mode 100644 Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml create mode 100644 Jenkins_Build/roles/jenkins/users/users.xml create mode 100644 Jenkins_Build/roles/jenkins/vars/main.yml create mode 100644 Jenkins_Build/site.yml diff --git a/Jenkins_Build/aws_ec2_launch.yml b/Jenkins_Build/aws_ec2_launch.yml new file mode 100644 index 000000000..297b251dc --- /dev/null +++ b/Jenkins_Build/aws_ec2_launch.yml @@ -0,0 +1,24 @@ +--- +- name: ec2 + hosts: localhost + connection: local + vars_files: + - group_vars/all + #gather_facts: False +#i- hosts: localhost + tasks: + - name: launching AWS instance using Ansible + ec2: + key_name: "{{ ec2_key_name }}" + instance_type: "{{ ec2_instance_type }}" + image: "{{ ec2_image }}" + region: "{{ ec2_region }}" + wait: yes + group_id: "{{ ec2_group_id }}" + count: "{{ ec2_instance_count }}" + vpc_subnet_id: "{{ ec2_vpc_subnet_id }}" + assign_public_ip: yes + aws_access_key: "{{ ec2_access_key }}" + aws_secret_key: "{{ ec2_secret_key }}" + instance_tags: + Name: "{{ ec2_instance_name }}" diff --git a/Jenkins_Build/group_vars/all b/Jenkins_Build/group_vars/all new file mode 100644 index 000000000..54fbab1d6 --- /dev/null +++ b/Jenkins_Build/group_vars/all @@ -0,0 +1,13 @@ +# AWS specific variables +ec2_access_key: +ec2_secret_key: +ec2_region: eu-west-1 +ec2_image: ami-04facb3ed127a2eb6 +ec2_instance_type: t2.micro +ec2_instance_count: 1 +ec2_key_name: +ec2_group_id: +ec2_vpc_subnet_id: +ec2_instance_name: jenkins-instance +ec2_tag: demo +#wait_for_port: 22 diff --git a/Jenkins_Build/hosts b/Jenkins_Build/hosts new file mode 100644 index 000000000..0ad2d3219 --- /dev/null +++ b/Jenkins_Build/hosts @@ -0,0 +1 @@ +10.0.1.41 diff --git a/Jenkins_Build/roles/jenkins/defaults/main.yml b/Jenkins_Build/roles/jenkins/defaults/main.yml new file mode 100644 index 000000000..e848bd6a2 --- /dev/null +++ b/Jenkins_Build/roles/jenkins/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for jenkins \ No newline at end of file diff --git a/Jenkins_Build/roles/jenkins/handlers/main.yml b/Jenkins_Build/roles/jenkins/handlers/main.yml new file mode 100644 index 000000000..e4060b4c1 --- /dev/null +++ b/Jenkins_Build/roles/jenkins/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for jenkins \ No newline at end of file diff --git a/Jenkins_Build/roles/jenkins/meta/main.yml b/Jenkins_Build/roles/jenkins/meta/main.yml new file mode 100644 index 000000000..227ad9c34 --- /dev/null +++ b/Jenkins_Build/roles/jenkins/meta/main.yml @@ -0,0 +1,53 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.9 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. + \ No newline at end of file diff --git a/Jenkins_Build/roles/jenkins/tasks/main.yml b/Jenkins_Build/roles/jenkins/tasks/main.yml new file mode 100644 index 000000000..fa5b2471b --- /dev/null +++ b/Jenkins_Build/roles/jenkins/tasks/main.yml @@ -0,0 +1,26 @@ +--- +- name: Wait for connection + wait_for_connection: + delay: 10 + timeout: 600 +- name: Install Java 1.8 and some basic dependencies + yum: + name: ['wget', 'zip', 'java-1.8.0-openjdk', 'firewalld'] + state: present +- name: Download jenkins.repo + get_url: + url: http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo + dest: /etc/yum.repos.d/jenkins.repo +- name: Import Jenkins Key + rpm_key: + state: present + key: https://jenkins-ci.org/redhat/jenkins-ci.org.key +- name: Install Jenkins + yum: + name: jenkins + state: present +- name: Start & Enable Jenkins + systemd: + name: jenkins + state: started + enabled: true diff --git a/Jenkins_Build/roles/jenkins/tests/inventory b/Jenkins_Build/roles/jenkins/tests/inventory new file mode 100644 index 000000000..878877b07 --- /dev/null +++ b/Jenkins_Build/roles/jenkins/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/Jenkins_Build/roles/jenkins/tests/test.yml b/Jenkins_Build/roles/jenkins/tests/test.yml new file mode 100644 index 000000000..846c4ff17 --- /dev/null +++ b/Jenkins_Build/roles/jenkins/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - jenkins \ No newline at end of file diff --git a/Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml b/Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml new file mode 100644 index 000000000..b80eafc53 --- /dev/null +++ b/Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml @@ -0,0 +1,49 @@ + + + 10 + admin + CGLab + + + + + + + + + + + + + + + + + all + false + false + + + + + + default + + + + + + 7ae7f38eb05ffbd3 + + + true + + + + #jbcrypt:$2a$10$gnUdZBqMRiT9TxB8YshUWuK1/vrkXwimKxnIhaYjo8x0R4U1Q9kOq + + + mahendar.s@capgemeni.com + + + \ No newline at end of file diff --git a/Jenkins_Build/roles/jenkins/users/users.xml b/Jenkins_Build/roles/jenkins/users/users.xml new file mode 100644 index 000000000..5be53cff0 --- /dev/null +++ b/Jenkins_Build/roles/jenkins/users/users.xml @@ -0,0 +1,10 @@ + + + 1 + + + admin + admin_9133444433618374529 + + + \ No newline at end of file diff --git a/Jenkins_Build/roles/jenkins/vars/main.yml b/Jenkins_Build/roles/jenkins/vars/main.yml new file mode 100644 index 000000000..1a68d6d7f --- /dev/null +++ b/Jenkins_Build/roles/jenkins/vars/main.yml @@ -0,0 +1,4 @@ +--- +# vars file for apache +ansible_user: "ec2-user" +ansible_port: "22" diff --git a/Jenkins_Build/site.yml b/Jenkins_Build/site.yml new file mode 100644 index 000000000..9eaa6e259 --- /dev/null +++ b/Jenkins_Build/site.yml @@ -0,0 +1,7 @@ +--- +- name: install jenkins + hosts: all + become: yes + roles: + - jenkins + From 68b204233e4c54b35e5dd83af0930c8a80fe621a Mon Sep 17 00:00:00 2001 From: krishnava11 <55794657+krishnava11@users.noreply.github.com> Date: Mon, 10 Aug 2020 22:32:18 +0530 Subject: [PATCH 3/5] Delete config.xml --- .../admin_9133444433618374529/config.xml | 49 ------------------- 1 file changed, 49 deletions(-) delete mode 100644 Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml diff --git a/Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml b/Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml deleted file mode 100644 index b80eafc53..000000000 --- a/Jenkins_Build/roles/jenkins/users/admin_9133444433618374529/config.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - 10 - admin - CGLab - - - - - - - - - - - - - - - - - all - false - false - - - - - - default - - - - - - 7ae7f38eb05ffbd3 - - - true - - - - #jbcrypt:$2a$10$gnUdZBqMRiT9TxB8YshUWuK1/vrkXwimKxnIhaYjo8x0R4U1Q9kOq - - - mahendar.s@capgemeni.com - - - \ No newline at end of file From 3c8eb23e226dd9e544ea87623bb3af29b7ed576d Mon Sep 17 00:00:00 2001 From: krishnava11 <55794657+krishnava11@users.noreply.github.com> Date: Mon, 10 Aug 2020 22:32:33 +0530 Subject: [PATCH 4/5] Delete users.xml --- Jenkins_Build/roles/jenkins/users/users.xml | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 Jenkins_Build/roles/jenkins/users/users.xml diff --git a/Jenkins_Build/roles/jenkins/users/users.xml b/Jenkins_Build/roles/jenkins/users/users.xml deleted file mode 100644 index 5be53cff0..000000000 --- a/Jenkins_Build/roles/jenkins/users/users.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - 1 - - - admin - admin_9133444433618374529 - - - \ No newline at end of file From b67b729b3f99f4b8bb4dee0495d3b9dd28388878 Mon Sep 17 00:00:00 2001 From: krishnava11 <55794657+krishnava11@users.noreply.github.com> Date: Mon, 10 Aug 2020 22:57:00 +0530 Subject: [PATCH 5/5] Update hosts --- Jenkins_Build/hosts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkins_Build/hosts b/Jenkins_Build/hosts index 0ad2d3219..2fbb50c4a 100644 --- a/Jenkins_Build/hosts +++ b/Jenkins_Build/hosts @@ -1 +1 @@ -10.0.1.41 +localhost