你如何在ansible playbook中解决这个小脚本?
要复制的文件名为[ServerName].[extension]
目标服务器为ServeName
for file in $(ls /var/tmp)
do
ServerName=$(echo $file | awk -F. 'NF{NF--};1'
scp /var/tmp/$file $ServerName:/var/tmp/
scp /var/tmp/pkg.rpm $ServerName:/var/tmp/
ssh $ServerName "cd /var/tmp; yum -y localinstall pkg.rpm "
done
感谢您的帮助
这个想法是有这样的东西(当然是工作)
- name: main loop
copy:
src: "{{ item }}"
dest: "/var/tmp/myfile.json"
- name: Install package
yum:
name: "packageToInstall"
state: present
delegate_to: "{{ item.split('/')[-1][:-5] }}"
with_fileglob:
- "/var/temp/*json"
答案 0 :(得分:0)
如果你用yaml写这个,你应该使用ansible_hostname
,ansible已经通过setup提供了关于主机的几个信息。
- name: copying files
copy:
src: /mine/file.ext
dest: /etc/{{ ansible_hostname }}.ext
有关module description中复制的更多信息。 设置期间收集的所有事实均可here。