2 Replies Latest reply on Nov 21, 2010 2:31 PM by goldmann

    Tutorial request: Fedora 14 + Postgres 8.x + JBoss.5.x / 6.x appliance for Amazon EC2

    goldmann

      From one of our community members:

       

      Hello,

       

      is there any step-by-step (quick start) tutorial how to create Fedora 14 + Postgres 8.x + JBoss.5.x / 6.x appliance for Amazon EC2 ?

       

      For my projects I need to have e.g. one or more Amazon Fedora Linux EC2 instances which contain Postgres DB server + JBoss 5.x/6.x farm. So, clustering must be supported.

       

      Fedora 14 package URLs: (for the OS)

       

      - base url: http://fedora.inode.at/fedora/linux/releases/14/Fedora/x86_64/os/

      - mirror url: http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f14&arch=x86_64

       

      list of packages from Fedora: https://admin.fedoraproject.org/pkgdb/acls/list/a*?_csrf_token=e45c1629abf4b8f34a8ec409c21d508bfa22efb2

       

      Postgres URLs for appliance : ?

      JBoss 5.x / 6.x URLs for appliance : ?

       

      It would be nice to have one appliance to have ALL-in-one; maybe some working appliance definition file samples

       

      Best Regards,

      Krešimir

        • 1. Re: Tutorial request: Fedora 14 + Postgres 8.x + JBoss.5.x / 6.x appliance for Amazon EC2
          kresimir_popovic

          Hello,

           

          I have no experience with the BoxGrinder, but I have read http://community.jboss.org/wiki/BoxGrinderDocumentation.

          I need a guidance/review regarding BoxGrinder because I want to make a developer step-by-step manual how to create Fedora 14 + Postgres + JBoss appliance.

           

          As I undestand *.appl files describe packages which linux distribution (Fedora or RHEL) needs to contain.

          In my case:

           

          Fedora 14 Linux

              - Postgres DB server

              - httpd apache

              - JBoss 5.x / 6.x

           

          1. Fedora 14 appliance

          name: Fedora 14 appliance
          summary: Fedora 14 appliance (core)
          version: 1
          release: 0
          os:
            name: fedora
            version: 14
            password:root
          hardware:
            cpus: 2
            memory: 512
            partitions:
              /:
                size: 2
          packages:
            includes:
              - jython
              - jwhois
              - ftp
              - ftplib
              - mc
              - bash
              - kernel
              - grub
              - e2fsprogs
              - passwd
              - policycoreutils
              - chkconfig
              - rootfiles
              - yum
              - vim-minimal
              - acpid
              - lokkit
              - dhclient
              - iputils
              - generic-logos
              - openssh-server

          appliances:
              - Postgres appliance (back-end)
              - JBoss 6.x appliance (back-end)
              - Apache appliance (front-end)

          repos:
          - name: "fedora-14"
              baseurl: "http://fedora.inode.at/fedora/linux/releases/14/Fedora/x86_64/os/"

            - name: "fedora-14-updates"
              mirrorlist: "http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f14&arch=x86_64"

           

          2. Postgres appliance (back-end)
          name: Postgres appliance (back-end)
          summary: Postgres appliance (back-end)
          version: 1
          release: 0
          hardware:
            cpus: 2
            memory: 512
            partitions:
              /:
                size: 1
          packages:
            includes:
            - postgresql
            - postgresql_autodoc
            - postgresql-dbi-link
            - postgresql-ip4r
            - postgresql-jdbc
            - postgresql-odbc
            - postgresql-odbcng
            - postgresql-pgpool
            - postgresql-pgpoolAdmin
            - postgresql-pgpool-ha
            - postgresql-pgpool-II
            - postgresql-plparrot
            - postgresql-plruby
            - postgresql-table_log
            - check_postgres

           

          3. JBoss 6.x appliance (back-end)

          name: JBoss 6.x appliance (back-end)
          summary: JBoss 6.x JBoss 6.x appliance (back-end)
          version: 1
          release: 0
          hardware:
            cpus: 2
            memory: 512
            partitions:
              /:
                size: 1
          packages:
            includes:
             - jboss-as6
             - jboss-as6-cloud-profiles
             - java-1.6.0-openjdk
             - javamail
             - javatar
             - jython

           

          repos: ???

           

          4. Apache appliance (front-end)

          name: Apache appliance (front-end)
          summary: Apache appliance (front-end)
          version: 1
          release: 0
          hardware:
            cpus: 2
            memory: 256
            partitions:
              /:
                size: 1
          packages:
            includes:
             - httpd
             - httperf
             - httping
             - http_ping
             - httptunnel
             - httpunit

          @Marek: Can you give some comments on *.appl list ? I don't JBoss "repos" location. Some pointers would be apritieted.

           

          Best Regards,

          Krešimir

          • 2. Re: Tutorial request: Fedora 14 + Postgres 8.x + JBoss.5.x / 6.x appliance for Amazon EC2
            goldmann

            Krešimir Popović wrote:

             

            Hello,

             

            I have no experience with the BoxGrinder, but I have read http://community.jboss.org/wiki/BoxGrinderDocumentation.

            I need a guidance/review regarding BoxGrinder because I want to make a developer step-by-step manual how to create Fedora 14 + Postgres + JBoss appliance.

             

            As I undestand *.appl files describe packages which linux distribution (Fedora or RHEL) needs to contain.

            In my case:

             

            Fedora 14 Linux

                - Postgres DB server

                - httpd apache

                - JBoss 5.x / 6.x

            Yes, in appliance definition files you specify what software should be included in your appliance based on specified operating system.

            1. Fedora 14 appliance

            name: Fedora 14 appliance
            summary: Fedora 14 appliance (core)
            version: 1
            release: 0
            os:
              name: fedora
              version: 14
              password:root
            hardware:
              cpus: 2
              memory: 512
              partitions:
                /:
                  size: 2
            packages:
              includes:
                - jython
                - jwhois
                - ftp
                - ftplib
                - mc
                - bash
                - kernel
                - grub
                - e2fsprogs
                - passwd
                - policycoreutils
                - chkconfig
                - rootfiles
                - yum
                - vim-minimal
                - acpid
                - lokkit
                - dhclient
                - iputils
                - generic-logos
                - openssh-server

            appliances:
                - Postgres appliance (back-end)
                - JBoss 6.x appliance (back-end)
                - Apache appliance (front-end)

            repos:
            - name: "fedora-14"
                baseurl: "http://fedora.inode.at/fedora/linux/releases/14/Fedora/x86_64/os/"

              - name: "fedora-14-updates"
                mirrorlist: "http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f14&arch=x86_64"

            Name must not contain spaces and should be written with lower case letters. Appliance definition name should be equal to name: jeos.appl => name: jeos.

             

            Instead specifying many packages, you can use groups – for minimal install use @core group and then add additional packages:

             

            packages:
              includes:
                - @core
                - jython
                - ...
            

             

            You can use yum groupinfo core command for full package list for core group.

             

            Appliances listed in appliances section needs to match the name of other appliances (see comment above).

             

            Repos for Fedora are not required, packages will be pulled from right Fedora repos. Don't use arch names in .appl files - use #ARCH# or #BASE_ARCH# parameters.

             


            2. Postgres appliance (back-end)
            name: Postgres appliance (back-end)
            summary: Postgres appliance (back-end)
            version: 1
            release: 0
            hardware:
              cpus: 2
              memory: 512
              partitions:
                /:
                  size: 1
            packages:
              includes:
              - postgresql
              - postgresql_autodoc
              - postgresql-dbi-link
              - postgresql-ip4r
              - postgresql-jdbc
              - postgresql-odbc
              - postgresql-odbcng
              - postgresql-pgpool
              - postgresql-pgpoolAdmin
              - postgresql-pgpool-ha
              - postgresql-pgpool-II
              - postgresql-plparrot
              - postgresql-plruby
              - postgresql-table_log
              - check_postgres

             

             

            Name - see comment above.

             

            Other things looks OK for me.

             

            3. JBoss 6.x appliance (back-end)

            name: JBoss 6.x appliance (back-end)
            summary: JBoss 6.x JBoss 6.x appliance (back-end)
            version: 1
            release: 0
            hardware:
              cpus: 2
              memory: 512
              partitions:
                /:
                  size: 1
            packages:
              includes:
               - jboss-as6
               - jboss-as6-cloud-profiles
               - java-1.6.0-openjdk
               - javamail
               - javatar
               - jython

             

             

            Wrong name.


            So, JBoss AS is not shipped as RPM as you may know. We (SteamCannon guys) provide a RPM for JBoss AS, which may not be right for you. The packages are hosted here: http://repo.steamcannon.org/packages/fedora/. We haven't build F14 versions, but these RPMs are noarch, so it shouldn't matter.

             

            4. Apache appliance (front-end)

             

            name: Apache appliance (front-end)
            summary: Apache appliance (front-end)
            version: 1
            release: 0
            hardware:
              cpus: 2
              memory: 256
              partitions:
                /:
                  size: 1
            packages:
              includes:
               - httpd
               - httperf
               - httping
               - http_ping
               - httptunnel
               - httpunit

             

            Name wrong. Other looks ok.

             

            Please take a look at SteamCannon appliances so you'll have some ideas how to modify your appliances. We provide also spec files for all RPM's we use.

             

            --Marek