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

ASF GitHub Bot commented on BROOKLYN-477:
-----------------------------------------

Github user drigodwin commented on a diff in the pull request:

    https://github.com/apache/brooklyn-docs/pull/192#discussion_r118456684
  
    --- Diff: guide/locations/provisioned-machine-requirements.md ---
    @@ -0,0 +1,161 @@
    +---
    +title: Provisioned Machine Requirements
    +layout: website-normal
    +---
    +
    +The requirements for how a provisioned machine should behave will depend 
on the
    +entites subsequently deployed there.
    +
    +Below are a set of common assumptions, made by many entity 
implementations, which
    +could cause subsequent errors if they do not hold. These relate to the 
machine's 
    +configuration, rather than additional networking or security that a given 
Cloud 
    +might offer.
    +
    +Also see the [Troubleshooting]({{ site.path.guide }}/ops/troubleshooting/) 
docs.
    +
    +
    +## Remote Access
    +
    +### SSH or WinRM Access
    +
    +Many entities require ssh'ing (or using WinRM for Windows), to install and 
configure 
    +the software.
    +
    +An example of disabling all ssh'ing is shown below:
    +
    +    location:
    +      aws-ec2:us-east-1:
    +        identity: XXXXXXXX
    +        credential: XXXXXXXX
    +        waitForSshable: false
    +        pollForFirstReachableAddress: false
    +    services:
    +    - type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
    +      brooklyn.config:
    +        onbox.base.dir.skipResolution: true
    +        sshMonitoring.enabled: false
    +
    +
    +### Parsing SSH stdout: No Extra Lines
    +
    +For entities that execute ssh commands, these sometimes parse the 
resulting stdout.
    +
    +It is strongly recommended that VMs are configured so that no additional 
stdout is written when executing 
    +remote ssh (or WinRM) commands. Such stdout risks interfering with the 
response parsing in some blueprints.
    +
    +For example, if configuring the VM to write out "Last login" information, 
this should be done for only 
    +"interactive" shells (see 
[Stackoverflow](http://stackoverflow.com/a/415444/1393883) for more details).
    +
    +
    +### Passwordless Sudo
    +
    +Does passwordless sudo work?
    +
    +Try executing:
    +
    +    sudo whoami
    +
    +See [Passwordless Sudo]({{ site.path.guide 
}}/locations/index.html#passwordless-sudo).
    +
    +
    +## Advertised Addresses
    +
    +### Hostname Resolves Locally
    +
    +Does the hostname known at the box resolve at the box?
    +
    +Try executing:
    +
    +    ping $(hostname)
    +
    +if not, consider setting `generate.hostname: true` in the location config, 
for jclouds-based locations.
    +
    +
    +### IP Resolves Locally
    +
    +For the IP address advertised in Brooklyn using the sensor 
`host.addresses.private` (or `host.subnet.address`), 
    +can the machine reach that IP?
    +
    +Get the sensor value, and then try executing:
    +
    +    ping ${PRIVATE_IP}
    +
    +Is there a public IP (advertised using the sensor `host.addresses.public`, 
or `host.address`), and can the 
    +machine reach it?
    +
    +Get the sensor value, and then try executing:
    +
    +    ping ${PUBLIC_IP}
    +
    +
    +## Networking
    +
    +### Public Internet Access
    +
    +Can the machine reach the public internet, and does DNS resolve?
    +
    +Try executing:
    +
    +    ping www.example.org
    +
    +
    +### Machine's Hostname in DNS
    +
    +Is the machine hostname well-known? If ones does a DNS lookup, e.g. from 
the Brooklyn server, does it resolve and 
    +does it return the expected IP (e.g. the same IP as the 
`host.addresses.public` sensor)? Try using the hostname
    +that the machine reports when you execute `hostname`.
    +
    +Many blueprints do not require this, instead using IP addresses directly. 
Some blueprints may include registration
    +with an appropriate DNS server. Some clouds do this automatically.
    +
    +
    +### Reachability
    +
    +When provisioning two machines, can these two machines reach each other on 
the expected IP(s) and hostname(s)?
    +
    +Try using `ping` from one machine to another using the public or subnet ip 
or hostname.
    +However, note that `ping` requires access over ICMP, which may be 
disabled. Alternatively,
    +try connecting to a specific TCP port using `telnet <address> <port>`.
    +
    +
    +### Firewalls
    +
    +What firewall(s) are running on the machine, and are the required ports 
open?
    +On linux, check things like `iptables`, `firewalld`, `ufw` or other 
commercial
    +firewalls. On Windows, check the settings of the 
    +[Windows Firewall](https://en.wikipedia.org/wiki/Windows_Firewall).
    +
    +Consider using `openIptables: true`, or even `stopIptables: true`.
    +
    +
    +## Sufficient Entropy for /dev/random
    +
    +Is there sufficient entropy on the machine, for `/dev/random` to respond 
quickly?
    +
    +Try executing:
    +
    +    { cat /dev/random > /tmp/x & } ; sleep 10 ; kill %1 ; { cat 
/dev/random > /tmp/x & } ; sleep 1 ; kill %1 ; wc /tmp/x | awk '{print $3}'
    +
    +The result should be more than 1M.
    +
    +If not, consider setting `installDevUrandom: true` for jclouds-based 
locations.
    --- End diff --
    
    This is the default anyway


> Add docs for target machine requirements/expectations
> -----------------------------------------------------
>
>                 Key: BROOKLYN-477
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-477
>             Project: Brooklyn
>          Issue Type: Improvement
>            Reporter: Aled Sage
>            Priority: Minor
>
> We should improve our docs for the machine requirements/expectations, for 
> blueprints to behave as expected.
> This became evident when investigating 
> https://issues.apache.org/jira/browse/BROOKLYN-475 (extra stdout when 
> ssh'ing). For example, our docs could say:
> {noformat}
> It is strongly recommended that VMs are configured so that no additional 
> stdout is written 
> when executing remote ssh (or WinRM) commands. Such stdout risks interfering 
> with the
> response parsing in some blueprints.
> For example, if configuring the VM to write out "Last login" information, 
> this should be 
> done for only "interactive" shells (see 
> http://stackoverflow.com/a/415444/1393883 for more 
> details).
> {noformat}
> There are no doubt many other things we could mention, such as:
> * {{/tmp/}} should be writable
> * Sufficient entropy (e.g. see 
> https://brooklyn.apache.org/v/latest/ops/troubleshooting/increase-entropy.html
>  for setting up Brooklyn itself)
> * Outbound network connectivity (but not all blueprints require that)



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

Reply via email to