我有一个主机文件,我想推入所有的AWS :: EC2 ::实例资源使用string:(使用YAML,而不是JSON)
Resources: InstanceName: Metadata: AWS::CloudFormation::Init:: config: files: /etc/hosts: content: !Ref 'HostFile' mode: '000644' owner: 'root' group: 'root'
我需要一个地方来定义主机文件使用FN :: Join和findinmap,la:
!Fn::Join ['', [ "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4\n", "::1 localhost localhost.localdomain localhost6 localhost6.localdomain6\n", !FindInMap [AddressMaps, InternalAddressMap, NFSIp], ' ', "cfnfs cfnfs.happysoftware.com\n", !FindInMap [AddressMaps, InternalAddressMap, RedisIp], ' ', "cfredis cfredis.happysoftware.com\n", !FindInMap [AddressMaps, InternalAddressMap, FileDropIp], ' ', "cffiledropoff cffiledropoff.happysoftware.com\n", !FindInMap [AddressMaps, InternalAddressMap, DatabaseIp], ' ', "cfdb cfdb.happysoftware.com\n", !FindInMap [AddressMaps, InternalAddressMap, BetaIp], ' ', "cfbeta cfbeta.happysoftware.com\n" ]]
我不想把它放在实例中,因为有多个实例会使用它,但是我不知道在哪里放置它。 你不能在默认的参数中使用一个函数,如果它在元数据中,那么就没有办法用!Ref来引用它。
任何想法如何注入共享/ etc / hosts?