LINUX.ORG.RU
ФорумAdmin

Прочесть переменные из файла

 


0

2

Создаю пользователя

 user { 'ivanov_i':
                ensure           => 'present',
                home             => '/dev/null',
                shell            => '/bin/false',
                password         => 'pass123',
                groups           => ['nogroup'],
                comment          => 'ivanov_i',
}
        
добавляю его в samba
exec {"/bin/bash -c '(echo pass123; echo pass123) | smbpasswd -s -a ivanov_i'":
                path => ['/usr/bin', '/usr/sbin', '/bin'],
                user => 'root',
                unless => 'id ivanov_i',
        }

Но, есть файл на 100 строк.

...
ivanov_i staff pass123
petrov_p boss pass456
...

Хочется как-то его прочесть и выполнить просто 100 итераций создания пользователя и добавления его в samba.

★★★★★

Последнее исправление: petav (всего исправлений: 1)
Ответ на: комментарий от Bers666

надо осилить define, и передать файл в вид

Надо осилить 100 строк файла привести к виду

my_smb_user { "ivanov_i": smb_role=>"staff" , smb_pass=>"pass123" }

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)

Ну ты и лентяй

~ λ cat users                                                                                  
ivanov_i staff pass123
petrov_p boss pass456
sidorov_s god nopass
~ λ awk '{ print "my_smb_user { \""$1"\": smb_role=>\""$2"\" , smb_pass=>\""$3"\" }"}' <  users
my_smb_user { "ivanov_i": smb_role=>"staff" , smb_pass=>"pass123" }
my_smb_user { "petrov_p": smb_role=>"boss" , smb_pass=>"pass456" }
my_smb_user { "sidorov_s": smb_role=>"god" , smb_pass=>"nopass" }
~ λ 

ioway
()
Ответ на: комментарий от ioway

Да, не так надо, похоже функция file нужна.

$my_variable = file("/data/stuff/cool_file") 
petav ★★★★★
() автор топика
Ответ на: комментарий от Bers666

Пробую Ваш вариант, определил функцию (заглушка)

define myuser ($role, $pass) {
  file { "/tmp/$name":
    ensure => file,
    content => "$role $pass"
  }
}
Этой функции надо предать имя, роль и пароль. Она в папке /tmp создает файл и записывает туда роль и пароль.

Иницаилизирую функцию из определения для узла


node 'asterisk' {
....
   myuser { "ivanov_i":
           role=>"boss",
           pass=>"pass123"
   }

   myuser { "petrov_p ":
           role=>"staff",
           pass=>"pass456"
   }
}
Удобно. К сожалению загрузить файл и с пользователями могу в перменную, но потом как с этим работать пока не ясно. Остановлюсь пока на этом, заменив у функции потроха для создания пользователя так как мне нужно.

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.