Sử dụng con rối để đặt tên máy chủ?


13

Có cách nào để đặt tên máy chủ của máy chủ bằng cách sử dụng con rối không?

Tôi có thể viết một loại tùy chỉnh, nhưng có lẽ có một cách đơn giản hơn.

Cảm ơn

[Chỉnh sửa] Xin lỗi, tôi nên đề cập đến việc tôi chạy rối không thành thạo, rối được thiết lập trước và sau đó nó sẽ thiết lập mọi thứ khác.


Có thể có một, nhưng tôi không biết. Tôi nghi ngờ là không có vì máy chủ ký chứng chỉ của khách hàng bao gồm tên máy chủ. Thông thường tên máy chủ được đặt trong quá trình triển khai, sau đó con rối được cài đặt và liên kết với máy chủ. Tôi không biết làm thế nào bạn tự động hóa cài đặt của nó sau thời gian cài đặt thông qua con rối.
Sirex

Xin lỗi, tôi nên đề cập đến việc tôi chạy rối không thành thạo, rối được thiết lập trước và sau đó nó sẽ thiết lập mọi thứ khác.
Andrei Serdeliuc

Câu trả lời:


10

Hãy xem định nghĩa "đổi tên" của tôi cho các ý tưởng. Nó giả sử Debian và cũng có thể hoạt động trên Ubuntu.

define rename() {
    # We only need puppet so we can restart it. In practice, there's
    # little point in renaming a machine through puppet without a
    # running puppet service
    include puppet::conf

    # We only need apt because puppet management of its package
    include apt

    host { "$hostname": ensure => absent }

    host { "$fqdn": ensure => absent }

    $alias = regsubst($name, '^([^.]*).*$', '\1')

    host { "$name":
        ensure => present,
        ip     => $ipaddress,
        alias  => $alias ? {
            "$hostname" => undef,
            default     => $alias
        },
        before => Exec['hostname.sh'],
    }

    file { '/etc/mailname':
        ensure  => present,
        owner   => 'root',
        group   => 'root',
        mode    => 644,
        content => "${name}\n",
    }

    file { '/etc/hostname':
        ensure  => present,
        owner   => 'root',
        group   => 'root',
        mode    => 644,
        content => "${name}\n",
        notify  => Exec['hostname.sh'],
    }

    exec { 'hostname.sh':
        command     => '/etc/init.d/hostname.sh start',
        refreshonly => true,
        notify      => Service['puppet'],
    }
} 

define rename::domain() {
    rename { "${hostname}.${name}": }

    common::line { 'remove_old_domain':
        ensure => absent,
        file   => '/etc/resolv.conf',
        line   => "domain $domain",
    }

    common::line { 'add_new_domain':
        ensure => present,
        file   => '/etc/resolv.conf',
        line   => "domain $name",
    }
}

Về cơ bản tôi cũng làm điều tương tự, ngoại trừ tôi cũng có tài nguyên tệp cho /etc/resolv.conf, đặt tên miền của mình. Tôi cũng chạy vô chủ.
François Beausoleil

1

Tạo một mô-đun sethostname. Đây là init.pp:

class sethostname {
  file { "/etc/hostname":
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => '0644',
    content => "$::fqdn\n",
    notify  => Exec["set-hostname"],
  }
  exec { "set-hostname":
    command => '/bin/hostname -F /etc/hostname',
    unless  => "/usr/bin/test `hostname` = `/bin/cat /etc/hostname`",
    notify  => Service[$rsyslog::params::service_name],
  }
}

https://gist.github.com/VertigoRay/6024253


lưu ý rằng $fqdnphải có giá trị chính xác. Bạn cũng có thể loại bỏ $rsyslogdòng.
confiq
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.