Uploaded image for project: 'Brooklyn'
  1. Brooklyn
  2. BROOKLYN-503

Shell.env should work with SaltEntity

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.10.0
    • None
    • Ubuntu 14.04

    Description

      I am using Brooklyn to deploy servers configured with Salt.

      I am trying to deploy one VM with a web server and another with MySQL, and link them together using env variables in the salt pillars.

      Based on the sample templates, this is my yaml.

      name: Salt LAMP deployment (Brooklyn Example)

      services:
      - id: mysql
        name: mysql
        type: org.apache.brooklyn.entity.cm.salt.SaltEntity
        formulas:
        - https://github.com/saltstack-formulas/mysql-formula/archive/master.tar.gz
        start_states:
        - mysql
        pillars:
        - mysql
        pillarUrls:
        - ftp://xxx/wordpress-example.tar
      - id: wordpress
        name: wordpress
        type: org.apache.brooklyn.entity.cm.salt.SaltEntity
        formulas:
        - https://github.com/saltstack-formulas/php-formula/archive/master.tar.gz
        - https://github.com/saltstack-formulas/wordpress-formula/archive/master.tar.gz
        - https://github.com/saltstack-formulas/apache-formula/archive/master.tar.gz
        - https://github.com/saltstack-formulas/mysql-formula/archive/master.tar.gz
        start_states:
        - mysql.client
        - php.ng
        - php.ng.mysql
        - wordpress
        - apache
        - apache.config
        - apache.vhosts.standard
        pillars:
        - php
        - wordpress
        - apache
        - mysql
        pillarUrls:
        - ftp://xxx/filezilla.tar
        brooklyn.config:
          shell.env:
            MYSQL_URL: $brooklyn:entity("mysql").attributeWhenReady("host.name")
      
      location:
        jclouds:aws-ec2:
          identity:     xxx
          credential:   xxx
          region:       us-west-2
          inboundPorts:
            - 22
            - 80
            - 3306
          hardwareId:   t2.small
      

      And then, inside the pillars, I configure them as follows

      wordpress:
          sites:
                  username: xxx
                  password: xxx
                  database: xxx
                  dbhost: {{ salt['environ.get']('MYSQL_URL') }}
      

      However, the MYSQL_URL env variable is resolved to none.

      I got word from svet in the IRC channel that SaltEntity doesn't support shell.env. I think it would be really helpful to make this option available in order to configure multinode deployments with Salt.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              angarg12 Andres Garcia Garcia
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated: