Confluence server from Atlassian

This is a simple Confluence server for your team of developers.

Requirements for this use case

  • Add a Network Domain
  • Add an Ethernet network
  • Deploy a Ubuntu server
  • Add server to real-time dashboard
  • Assign a public IPv4 address to the server
  • Add address translation to ensure end-to-end IP connectivity
  • Add firewall rule to accept TCP traffic on port 22 (ssh) and web (8090)
  • Install Confluence in unattended mode

Fittings plan

Copy the text below and put it in a text file named fittings.yaml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 ---

 defaults:

   cloud-config: # default for all nodes created by plumbery

     ssh_keys: # generated randomly, and used on subsequent invocations
       rsa_private: |
         {{ key.rsa_private }}
       rsa_public: "{{ key.rsa_public }}"

     users:
       - default

       - name: ubuntu
         sudo: 'ALL=(ALL) NOPASSWD:ALL'
         ssh-authorized-keys:
           - "{{ key.rsa_public }}"
           - "{{ local.rsa_public }}"

       - name: root
         ssh-authorized-keys:
           - "{{ key.rsa_public }}"
           - "{{ local.rsa_public }}"

     disable_root: false

     ssh_pwauth: false

 ---
 locationId: EU8
 regionId: dd-eu

 blueprints:

   - confluence:

       domain:
         name: ConfluenceFox
         description: "Demonstration of a standalone Confluence server"
         service: essentials
         ipv4: 2

       ethernet:
         name: confluencefox.servers
         subnet: 192.168.20.0

       nodes:

         - confluence01:
             cpu: 2
             memory: 4
             monitoring: essentials
             glue:
               - internet 22 8090

             description: "#confluence #atlassian #ubuntu"

             information:
               - "this is a Confluence server for a small team"
               - "connect remotely with a browser at following address:"
               - "http://{{ node.public }}:8090/"

             appliance: 'Ubuntu 14'

             cloud-config:

               packages:
                 - ntp

               write_files:

                 - path: /root/response.varfile
                   content: |
                     #install4j response file for Confluence 5.9.4
                     #Tue Feb 09 17:27:13 EST 2016
                     executeLauncherAction$Boolean=true
                     app.install.service$Boolean=true
                     sys.confirmedUpdateInstallationString=false
                     existingInstallationDir=/usr/local/Confluence
                     sys.languageId=en
                     sys.installationDir=/opt/atlassian/confluence

               runcmd:

                 - echo "===== Handling ubuntu identity"
                 - cp -n /etc/ssh/ssh_host_rsa_key /home/ubuntu/.ssh/id_rsa
                 - cp -n /etc/ssh/ssh_host_rsa_key.pub /home/ubuntu/.ssh/id_rsa.pub
                 - chown ubuntu:ubuntu /home/ubuntu/.ssh/*
                 - sed -i "/StrictHostKeyChecking/s/^.*$/    StrictHostKeyChecking no/" /etc/ssh/ssh_config

                 - echo "===== Installing Confluence"
                 - cd /root
                 - wget -nv https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-5.9.4-x64.bin
                 - chmod a+x atlassian-confluence-5.9.4-x64.bin
                 - ./atlassian-confluence-5.9.4-x64.bin -q -varfile /root/response.varfile

Deployment commands

$ python -m plumbery fittings.yaml deploy

These commands will build fittings as per the provided plan, start the server and bootstrap it.

You can find the public address assigned to the server like this:

$ python -m plumbery fittings.yaml ping

Follow-up commands

In this use case you can use the IPv4 assigned to the manager for direct web browsing, but on unusual port number:

http://<ipv4_here>:8090/

This command is self-explanatory and validates the system installation.

Destruction commands

The more servers you have, the more costly it is. Would you like to stop the invoice?

$ python -m plumbery fittings.yaml dispose