abdullahfaqeir/laravel-dynamic-servers-vultr

Vultr提供者,用于Spatie的Laravel Dynamic Servers包

1.0.0 2023-03-22 14:39 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包提供Spatie的Laravel Dynamic Servers包的服务器提供者,链接到Laravel Dynamic Servers

安装

您可以通过composer安装此包

composer require abdullahfaqeir/laravel-dynamic-servers-vultr

之后,请确保发布此包附带的事件服务提供者

php artisan dynamic-servers-vultr:install

用法

在config/dynamic-servers.php中注册Vulter提供者

return [
    'providers' => [
        'vultr' => [
            'class' => AbdullahFaqeir\LaravelDynamicServersVultr\Vultr\VultrServerProvider::class,
            'maximum_servers_in_account' => 15,
            'options' => [
                'token' => env('VULTR_TOKEN'),
                'region' => env('VULTR_REGION'),
            ],
        ],
    ],
];

在app/Providers/DynamicServersProvider.php中,使用Vultr提供者注册一个新的服务器类型

public function register()
{
    ....
    
    
    $vultrServer = ServerType::new('small')
        ->provider('vultr')
        ->configuration(function (Server $server) {
            return [
                'label' => Str::slug($server->name),
                "region" => $server->option('region'),
                'plan' => 'vc2-1c-1gb',
                "vpc_uuid" => '62420e18-5628-4f6c-9ee4-aca48a5a7c17',
                'os_id' => 1743,
                'enable_ipv6' => true,
                'backups' => 'disabled',
                'tags' => [
                    'tag1',
                    'tag2'
                ]
            ];
        });

    DynamicServers::registerServerType($vultrServer);
}

事件

在基础包的CreateServerJob执行后,将调度一个新的作业VerifyServerStartedJob,并每隔20秒检查一次,以确保提供者最终将实例标记为运行。

一旦确保它运行,就不再尝试再次获取服务器元数据。

考虑到Vultr只有在实例完全创建后才会返回实例的IP地址,我们需要再次获取实例元数据。

为此,我们将使用基础包的事件ServerRunningEvent

此包将在您的项目中发布一个App\Providers\VultrEventServiceProvider

默认情况下,有一个单独的监听器配置,它将在基础包确保它运行后再次获取实例的元数据。

protected $listen = [
        ServerRunningEvent::class => [
            UpdateServerMeta::class,
        ],
    ];

您可以根据需要自定义监听器、禁用它或用您自己的替换它。

测试

composer test

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。