func (m *DebianOneInstallTemplate) Render(pkg urknall.Package) { ip := u.IP("") pkg.AddCommands("repository", u.Shell("wget -q -O- http://downloads.opennebula.org/repo/Debian/repo.key | apt-key add -"), u.Shell("echo 'deb http://downloads.opennebula.org/repo/4.14/Debian/8 stable opennebula' > /etc/apt/sources.list.d/opennebula.list"), u.UpdatePackagesOmitError(), ) pkg.AddCommands("one-install", u.InstallPackages("build-essential autoconf libtool make lvm2 ssh iproute iputils-arping opennebula opennebula-sunstone ntp ruby-dev"), ) pkg.AddCommands("requires", u.Shell("echo 'oneadmin ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/oneadmin"), u.Shell(" chmod 0440 /etc/sudoers.d/oneadmin"), u.Shell(" rm /usr/share/one/install_gems"), u.Shell(" cp /usr/share/megam/megdc/conf/install_gems /usr/share/one/install_gems"), u.Shell(" chmod 755 /usr/share/one/install_gems"), u.Shell("/usr/share/one/install_gems sunstone"), u.Shell("sed -i 's/^[ \t]*:host:.*/:host: "+ip+"/' /etc/one/sunstone-server.conf"), u.AsUser("oneadmin", u.Shell("echo 'TM_MAD=ssh' >/tmp/ds_tm_mad")), u.AsUser("oneadmin", u.Shell("onedatastore update 0 /tmp/ds_tm_mad")), u.AsUser("oneadmin", u.Shell("onedatastore update 1 /tmp/ds_tm_mad")), u.AsUser("oneadmin", u.Shell("onedatastore update 2 /tmp/ds_tm_mad")), u.Shell("sunstone-server start"), u.Shell("econe-server start"), u.AsUser("oneadmin", u.Shell("one restart")), u.Shell("service opennebula restart"), ) }
func (m *DebianCephInstallTemplate) slashIp() string { s := strings.Split(u.IP(m.phydev), ".") p := s[0 : len(s)-1] p = append(p, "0") return fmt.Sprintf("%s/%d", strings.Join(p, "."), m.noOfIpsFromMask()) }
func (m *DebianCephInstallTemplate) Render(pkg urknall.Package) { host, _ := os.Hostname() ip := u.IP(m.phydev) osddir := u.ArraytoString("/", "/osd", m.osds) hostosd := u.ArraytoString(host+":/", "/osd", m.osds) CephUser := m.cephuser CephHome := m.cephhome pkg.AddCommands("cephinstall", u.Shell("echo deb https://download.ceph.com/debian-infernalis/ jessie main | tee /etc/apt/sources.list.d/ceph.list"), u.Shell("wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -"), u.InstallPackages("apt-transport-https sudo"), u.UpdatePackagesOmitError(), u.InstallPackages("ceph-deploy ceph-common ceph-mds dnsmasq openssh-server ntp sshpass ceph ceph-mds ceph-deploy radosgw"), ) pkg.AddCommands("cephuser_add", u.AddUser(CephUser, false), ) pkg.AddCommands("cephuser_sudoer", u.Shell("echo '"+CephUser+" ALL = (root) NOPASSWD:ALL' && mkdir -p /etc/sudoers.d | tee /etc/sudoers.d/"+CephUser+""), ) pkg.AddCommands("chmod_sudoer", u.Shell("chmod 0440 /etc/sudoers.d/"+CephUser+""), ) pkg.AddCommands("etchost", u.Shell("echo '"+ip+" "+host+"' >> /etc/hosts"), ) pkg.AddCommands("ssh-keygen", u.Mkdir(CephHome+"/.ssh", CephUser, 0700), u.AsUser(CephUser, u.Shell("ssh-keygen -N '' -t rsa -f "+CephHome+"/.ssh/id_rsa")), u.AsUser(CephUser, u.Shell("cp "+CephHome+"/.ssh/id_rsa.pub "+CephHome+"/.ssh/authorized_keys")), ) pkg.AddCommands("ssh_known_hosts", u.WriteFile(CephHome+"/.ssh/ssh_config", StrictHostKey, CephUser, 0755), u.WriteFile(CephHome+"/.ssh/config", fmt.Sprintf(SSHHostConfig, host, host, CephUser), CephUser, 0755), ) pkg.AddCommands("mkdir_osd", u.Mkdir(osddir, "", 0755), u.Shell("sudo chown -R"+CephUser+":"+CephUser+" "+osddir), ) pkg.AddCommands("write_cephconf", u.AsUser(CephUser, u.Shell("mkdir "+CephHome+"/ceph-cluster")), u.AsUser(CephUser, u.Shell("cd "+CephHome+"/ceph-cluster")), u.AsUser(CephUser, u.Shell("cd "+CephHome+"/ceph-cluster;ceph-deploy new "+host+" ")), u.AsUser(CephUser, u.Shell("echo 'osd crush chooseleaf type = 0' >> "+CephHome+"/ceph-cluster/ceph.conf")), u.AsUser(CephUser, u.Shell("echo 'osd_pool_default_size = 2' >> "+CephHome+"/ceph-cluster/ceph.conf")), u.AsUser(CephUser, u.Shell("echo 'mon_pg_warn_max_per_osd = 0' >> "+CephHome+"/ceph-cluster/ceph.conf")), u.AsUser(CephUser, u.Shell("cd "+CephHome+"/ceph-cluster;ceph-deploy install "+host+"")), u.AsUser(CephUser, u.Shell("cd "+CephHome+"/ceph-cluster;ceph-deploy mon create-initial | ceph-deploy mon create-initial")), u.AsUser(CephUser, u.Shell("cd "+CephHome+"/ceph-cluster;ceph-deploy osd prepare "+hostosd)), u.AsUser(CephUser, u.Shell("cd "+CephHome+"/ceph-cluster;ceph-deploy osd activate "+hostosd)), u.AsUser(CephUser, u.Shell("cd "+CephHome+"/ceph-cluster;ceph-deploy admin "+host+"")), u.AsUser(CephUser, u.Shell("chmod +r /etc/ceph/ceph.client.admin.keyring")), u.AsUser(CephUser, u.Shell("sleep 180")), u.AsUser(CephUser, u.Shell("ceph osd pool set rbd pg_num 150")), u.AsUser(CephUser, u.Shell("sleep 180")), u.AsUser(CephUser, u.Shell("ceph osd pool set rbd pgp_num 150")), ) pkg.AddCommands("copy_keyring", u.Shell("cp "+CephHome+"/ceph-cluster/*.keyring /etc/ceph/"), ) }