You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vcl.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2014/12/15 21:54:13 UTC

[jira] [Commented] (VCL-767) Allow dynamic private IP addresses, remove /etc/hosts requirement

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

ASF subversion and git services commented on VCL-767:
-----------------------------------------------------

Commit 1645748 from [~arkurth] in branch 'vcl/trunk'
[ https://svn.apache.org/r1645748 ]

VCL-767
Added utils.pm::determine_remote_connection_target. This get passed an IP address or hostname of a target to connect to. It attempts to determine which to use to connect. The preference is now to use the private IP address. If this is not populated in the database, it attempts to resolve the hostname and use the resolved IP address. If all else fails, the original argument is returned.

Added utils.pm::get_computer_current_private_ip_address. This retrieves the current privateIPaddress from the database.

Updated utils.pm::nmap_port, run_ssh_command, and run_scp_command to use the value returned from determine_remote_connection_target.

Updated DataStructure.pm::get_computer_private_ip_address to check the value in the database. The database value is authoritative. DataStructure.pm will get the correct value if updated outside of DataStructure.pm.

Updated OS.pm::execute_new to call determine_remote_connection_target and use the result to make the remote connection.

> Allow dynamic private IP addresses, remove /etc/hosts requirement
> -----------------------------------------------------------------
>
>                 Key: VCL-767
>                 URL: https://issues.apache.org/jira/browse/VCL-767
>             Project: VCL
>          Issue Type: Improvement
>          Components: vcld (backend)
>    Affects Versions: 2.3.2
>            Reporter: Andy Kurth
>            Assignee: Andy Kurth
>             Fix For: 2.4
>
>
> Some provisioning modules require dynamic private IP addressing.  VCL doesn't currently support this.
> To summarize the situation and changes, the backend code currently reads /etc/hosts in order to determine the private IP address of a node.  It does not rely on the computer.privateIPaddress field in the database.  Several node configuration tasks depend on knowing the correct private IP address.  The backend code also currently uses the computer.hostname value to SSH into nodes.  As a result, it depends on hostname-private IP address resolution working correctly -- which is usually accomplished via /etc/hosts.
> I will change the code to:
> (1) Not read or reference /etc/hosts at all
> (2) Use the computer.privateIPaddress field as the authoritative value
> (3) Use the private IP address instead of the hostname for all SSH and other connections
> (4) Add utils.pm::update_private_ip_address
> This will allow any provisioning module to have control over how private IP addresses are allocated.  If they are dynamically allocated when a node is loaded or instantiated, the provisioning module can retrieve the dynamic private IP address from Openstack or some other provisioning API, and call update_private_ip_address to set the correct value in the database.  The provisioning module should also call $self->data->set_private_ip_address.  When control is passed from the provisioning to the OS module, everything should be set up correctly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)