You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by ba...@apache.org on 2015/08/16 19:47:21 UTC

[04/23] couchdb-ci git commit: install jenkins and nginx

install jenkins and nginx


Project: http://git-wip-us.apache.org/repos/asf/couchdb-ci/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-ci/commit/7e8caf9b
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-ci/tree/7e8caf9b
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-ci/diff/7e8caf9b

Branch: refs/heads/master
Commit: 7e8caf9ba5e7b8fbe1f3f3279bbcf2aff286024a
Parents: cfa05d9
Author: Bastian Krol <ba...@web.de>
Authored: Sat Jul 4 00:02:22 2015 +0200
Committer: Bastian Krol <ba...@web.de>
Committed: Sat Jul 4 00:02:37 2015 +0200

----------------------------------------------------------------------
 ansible/roles/jenkins-master/handlers/main.yml  |  5 +++
 ansible/roles/jenkins-master/tasks/main.yml     | 46 +++++++++++++++++++-
 .../jenkins-master/templates/nginx/jenkins      | 20 +++++++++
 ansible/roles/jenkins-master/vars/main.yml      |  6 +++
 ansible/roles/ubuntu/tasks/main.yml             | 11 +----
 ansible/site.yml                                |  2 +-
 vagrant/couchdb-jenkins-master/Vagrantfile      |  5 ++-
 7 files changed, 81 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/7e8caf9b/ansible/roles/jenkins-master/handlers/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/jenkins-master/handlers/main.yml b/ansible/roles/jenkins-master/handlers/main.yml
new file mode 100644
index 0000000..bda076d
--- /dev/null
+++ b/ansible/roles/jenkins-master/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+  - name: restart jenkins service
+    service:
+      name: jenkins
+      state: restarted

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/7e8caf9b/ansible/roles/jenkins-master/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/jenkins-master/tasks/main.yml b/ansible/roles/jenkins-master/tasks/main.yml
index d02a671..5772e80 100644
--- a/ansible/roles/jenkins-master/tasks/main.yml
+++ b/ansible/roles/jenkins-master/tasks/main.yml
@@ -1,2 +1,46 @@
 ---
-# currently there are no tasks for Jenkins master ¯\_(ツ)_/¯
+  - name: add apt-key for jenkins apt repo
+    apt_key:
+      url: https://jenkins-ci.org/debian/jenkins-ci.org.key
+      state: present
+
+  - name: add jenkins apt repo
+    lineinfile:
+      dest: /etc/apt/sources.list.d/jenkins.list
+      line: "deb http://pkg.jenkins-ci.org/debian binary/"
+      state: present
+      create: true
+
+  - name: install jenkins
+    apt:
+      name: jenkins
+      state: present
+      update_cache: yes # run apt-get update before apt-get install jenkins
+
+  - name: start jenkins service
+    service:
+      name: jenkins
+      state: started
+
+  - name: install nginx
+    apt:
+      name: nginx
+      state: present
+
+  - name: remove default nginx site
+    file: name={{ item }} state=absent
+    with_items:
+    - /etc/nginx/sites-available/default
+    - /etc/nginx/sites-enabled/default
+
+  - name: copy nginx config
+    template:
+      src: nginx/jenkins
+      dest: /etc/nginx/sites-available/jenkins
+    notify: restart jenkins service
+
+  - name: enable jenkins site
+    file:
+      src: /etc/nginx/sites-available/jenkins
+      dest: /etc/nginx/sites-enabled/jenkins
+      state: link

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/7e8caf9b/ansible/roles/jenkins-master/templates/nginx/jenkins
----------------------------------------------------------------------
diff --git a/ansible/roles/jenkins-master/templates/nginx/jenkins b/ansible/roles/jenkins-master/templates/nginx/jenkins
new file mode 100644
index 0000000..9aa6667
--- /dev/null
+++ b/ansible/roles/jenkins-master/templates/nginx/jenkins
@@ -0,0 +1,20 @@
+upstream app_server {
+    server 127.0.0.1:8080 fail_timeout=0;
+}
+
+server {
+    listen 80;
+    listen [::]:80 default ipv6only=on;
+    server_name {{ server_name }};
+
+    location / {
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header Host $http_host;
+        proxy_redirect off;
+
+        if (!-f $request_filename) {
+            proxy_pass http://app_server;
+            break;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/7e8caf9b/ansible/roles/jenkins-master/vars/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/jenkins-master/vars/main.yml b/ansible/roles/jenkins-master/vars/main.yml
new file mode 100644
index 0000000..69517fb
--- /dev/null
+++ b/ansible/roles/jenkins-master/vars/main.yml
@@ -0,0 +1,6 @@
+---
+
+################################################################################
+# nginx
+################################################################################
+server_name: ci.couchdb.org

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/7e8caf9b/ansible/roles/ubuntu/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/ubuntu/tasks/main.yml b/ansible/roles/ubuntu/tasks/main.yml
index b5e575b..a0d289b 100644
--- a/ansible/roles/ubuntu/tasks/main.yml
+++ b/ansible/roles/ubuntu/tasks/main.yml
@@ -1,11 +1,2 @@
 ---
-  - name: install some basic apt packages
-    apt: name={{item}} state=present
-    with_items:
-    - binutils
-    - bzip2
-    - curl
-    - sudo
-    - unzip
-    - vim # you'll want a decent editor on the box, don't you?
-    - wget
+# currently there are no common tasks for Ubuntu servers ¯\_(ツ)_/¯

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/7e8caf9b/ansible/site.yml
----------------------------------------------------------------------
diff --git a/ansible/site.yml b/ansible/site.yml
index 74c8fd5..43d7d92 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -11,7 +11,7 @@
   roles:
   - ubuntu
 
-# Configure and deploy database servers.
+# Configure and deploy Jenkins master
 - hosts: jenkins-master
   remote_user: root
   roles:

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/7e8caf9b/vagrant/couchdb-jenkins-master/Vagrantfile
----------------------------------------------------------------------
diff --git a/vagrant/couchdb-jenkins-master/Vagrantfile b/vagrant/couchdb-jenkins-master/Vagrantfile
index 63370e0..c24fdc6 100644
--- a/vagrant/couchdb-jenkins-master/Vagrantfile
+++ b/vagrant/couchdb-jenkins-master/Vagrantfile
@@ -26,10 +26,11 @@ Vagrant.configure(2) do |config|
   config.vm.provision "ansible" do |ansible|
     ansible.playbook = "../../ansible/site.yml"
     ansible.groups = {
-      "jenkins-master" => ["jenkins-master"],
-      "ubuntu" => ["ubuntu"]
+      "jenkins-master" => ["couchdb-jenkins-master"],
+      "ubuntu" => ["couchdb-jenkins-master"],
     }
   end
 
+  config.vm.network "forwarded_port", guest:   80, host: 10080
   config.vm.network "forwarded_port", guest: 8080, host: 18080
 end