如何在AWS上使用puppet运行fdisk

时间:2017-02-24 05:42:41

标签: linux amazon-ec2 puppet ami

我正在尝试使用Packer和puppet-masterless构建器创建AMI。我想将20G ebs卷装到/test

基本上我想使用puppet自动执行以下命令。我试过但还没有成功。我是木偶的新手并尝试使用lvm模块,但面临问题。有人可以提出正确的方法来实现以下目标吗?

fdisk /dev/xvdk
mkfs -t xfs /dev/xvdk1
mkdir -p /test
echo "/dev/xvdk1  /test xfs defaults  0 0" >> /etc/fstab
mount /test

2 个答案:

答案 0 :(得分:2)

由于您说您正在使用lvm模块,因此以下是您在Puppet中完成所述内容的方法。

# there is no Puppet intrinsic for this
exec { '/sbin/fdisk /dev/xvdk': unless => '/bin/lsblk /dev/xvdk' }

# create the /dev/xvdk1 filesystem
filesystem { '/dev/xvdk1':
  ensure  => present,
  fs_type => xfs,
  require => Exec['/sbin/fdisk /dev/xvdk1'], # after partition created
}

# create directory
file { '/test': ensure => directory }

# mount /test
mount { '/test':
  ensure    => mounted, # mount /test
  device    => '/dev/xvdk1', # next five lines fstab mount options
  fstype    => xfs,
  options   => defaults,
  dump      => 0,
  pass      => 0,
  atboot    => true, # add entry to fstab
  require   => File['/test'], # after dir created
  subscribe => Filesystem['/dev/xvdk1'], # remount if/when filesystem changes
}

请注意,您不是在此过程中创建卷组或逻辑卷,并且您可能希望(尤其是逻辑卷)成功完成此操作。但是,上述Puppet资源将完美地执行您在问题中描述的命令。

答案 1 :(得分:0)

试试这个:

mount /dev/xvdk1 /test

希望有所帮助