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


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to