[ 
https://issues.apache.org/jira/browse/BROOKLYN-503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16018899#comment-16018899
 ] 

Geoff Macartney commented on BROOKLYN-503:
------------------------------------------

One possible workaround here would be to initiate the wordpress using a 
separate {{VanillaSoftwareProcess}} entity, which _will_ get the right shell 
environment. Something like 
{code}
name: wordpress
location: ....
services:

- id: mysql
  type: org.apache.brooklyn.entity.cm.salt.SaltEntity
  name: mysql

  start_states:
    - mysql
  stop_states:
    - mysql.disabled
  formulas:
    - https://github.com/saltstack-formulas/mysql-formula/archive/master.tar.gz
  pillars:
    - mysql
  pillarUrls:
    - ftp://xxx/wordpress-example.tar


- type: brooklyn.entity.basic.SameServerEntity
  name: Entities
  brooklyn.children:

  - id: wp-prereqs
    name: wordpress-prereqs
    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 - omitted here but started in wp-boot
    - apache
    - apache.config
    - apache.vhosts.standard
    pillars:
    - php
    - wordpress
    - apache
    - mysql
    pillarUrls:
    - ftp://xxx/filezilla.tar

  - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
    id: wp-boot
    name: wp-boot
    brooklyn.config:
      start.latch: 
$brooklyn:entity("wp-prereqs").attributeWhenReady("service.isUp")
      launch.latch: $brooklyn:entity("mysql").attributeWhenReady("service.isUp")
      shell.env:
        MYSQL_URL: $brooklyn:entity("mysql").attributeWhenReady("host.name")
      launch.command:
        sudo salt-call state.apply wordpress
      checkRunning.command:
        true
{code}



> Shell.env should work with SaltEntity
> -------------------------------------
>
>                 Key: BROOKLYN-503
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-503
>             Project: Brooklyn
>          Issue Type: Improvement
>    Affects Versions: 0.10.0
>         Environment: Ubuntu 14.04
>            Reporter: Andres Garcia Garcia
>              Labels: env, salted
>
> 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)
> {code}
> 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
> {code}
> And then, inside the pillars, I configure them as follows
> {code}
> wordpress:
>     sites:
>             username: xxx
>             password: xxx
>             database: xxx
>             dbhost: {{ salt['environ.get']('MYSQL_URL') }}
> {code}
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to