4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/capistrano/ext/capstrap/hostname.rb', line 4
def self.load_into(configuration)
configuration.load do
namespace :hostname do
desc "Sets the hostname."
task :set_hostname do
if exists?(:host_name)
hname = fetch(:host_name)
else
hname = capture(%{hostname}).chomp
end
unless hostname_correct?(hname)
cmd = [
%{echo "#{hname}" > /etc/hostname},
%{chown root:root /etc/hostname},
%{chmod 0644 /etc/hostname},
%{start hostname}
]
run cmd.join(" && ")
end
end
desc "Sets the full qualified domain name."
task :set_fqdn do
begin
current_fqdn = capture(%{hostname -f}).chomp
rescue
current_fqdn = "fubarname.fubardomain"
end
if exists?(:host_name)
hname = fetch(:host_name)
else
hname = current_fqdn.split('.').shift
end
if exists?(:domain_name)
dname = fetch(:domain_name)
else
dname = current_fqdn.split('.').drop(1).join('.')
end
unless fqdn_correct?(hname, dname, "127.0.1.1")
run " if egrep -q '^127.0.1.1[[:space:]]' /etc/hosts >/dev/null ; then\n perl -pi -e 's|^(127.0.1.1[[:space:]]+).*$|\\$1\#{hname}.\#{dname} \#{hname}|' /etc/hosts;\n else\n perl -pi -e 's|^(127\\.0\\.0\\.1[[:space:]]+.*)$|\\$1\\n127.0.1.1 \#{hname}.\#{dname} \#{hname}|' /etc/hosts;\n fi;\n UPDATE_HOSTS\n end\n end\n end\n end\nend\n"
|