我通过 Ansible 的同步模块使用 rsync和以下任务定义:
synchronize: src='{{ local_app_path }}/.' dest='{{ remote_app_path }}/' perms=no owner=yes rsync_opts=--delete-after
Run Code Online (Sandbox Code Playgroud)
运行此任务会生成以下命令:
rsync --delay-updates -FF --compress --archive --no-perms --rsh 'ssh -S none -o StrictHostKeyChecking=no' --rsync-path="sudo rsync" --delete-after --out-format='<<CHANGED>>%i %n%L' "../src/." "vagrant@192.168.55.55:/var/www/app/"
Run Code Online (Sandbox Code Playgroud)
我的目录布局是这样的:
src/
# ...
app/
test/
node_modules/
package.json
provisioning/
# ...
playbook.yml
.rsync-filter
Run Code Online (Sandbox Code Playgroud)
这是我的 .rsync 过滤器:
exclude /src/.env
exclude /src/node_modules
Run Code Online (Sandbox Code Playgroud)
现在我期望运行我的同步任务并在服务器上生成的目录结构如下所示(注意丢失的node_modules文件夹):
app/
test/
package.json
Run Code Online (Sandbox Code Playgroud)
这有效。但是,一旦我node_modules在服务器上创建了一个文件夹......
app/
test/
node_modules/
package.json
Run Code Online (Sandbox Code Playgroud)
...并再次运行同步,该node_modules文件夹再次从服务器中删除(即使我已将其排除在 .rsync-filter 中):
app/
test/
package.json
Run Code Online (Sandbox Code Playgroud)
我希望 -node_modules …
我们正在运行多个全球分布的 Kubernetes 集群,这些集群需要运行相同的软件。当我们发布此软件的更新(作为上传到私有 Docker 存储库的 Docker 映像)时,我们当前的部署管道需要遍历已知部署列表,连接到每个集群并在那里更新正确的部署。这是一个繁琐、脆弱、缓慢且不可扩展的过程。
我正在寻找一种方法来解决这个问题,方法是创建定期检查新 Docker 镜像版本的部署,当他们检测到更改时,他们会拉取新镜像并更新正确的部署。这应该由每个集群独立完成,因此没有连接到每个集群的中央进程和要维护的集群列表等。
不要求所有集群同时更新,但其想法是在没有中央管理的情况下具有最终一致性。
是否有现有工具可以执行此操作或以不同方式解决此问题?
在尝试在 K8 上运行 ElasticSearch 时,我遇到了一个会杀死容器的错误:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
幸运的是,这有很好的文档记录,我能够找出使其稳定的容器的配置设置。这个问题不是关于那个。
我的问题是,为什么在 K8 和 Docker 上会发生这种情况?我在两种情况下都使用相同的图像(官方 ES 图像),那么值不同的一些原因是什么?有没有办法可以配置 K8 或运行它的机器,以免出现这种情况?
我们的开发人员使用 VisualStudio 2017
他们使用我编写的 Post-Build PowerShell 函数将应用程序发布到正确的目的地。
有时(100 次中有 1 次)他们会收到以下错误:
Copy-Item : The process cannot access the file 'X:\xy\application.exe' because it is
9> being used by another process.
Run Code Online (Sandbox Code Playgroud)
问题是 - 它没有被另一个进程使用。任何其他用户(例如我)可以重命名目标中的文件,删除它或其他任何。
当开发人员重新启动他的计算机时,他可以毫无问题地发布应用程序。
所以在我看来,他的文件系统搞砸了一些事情。我们尝试了
taskkill /im explorer.exe /f && start "" explorer.exe 但这没有帮助。
如果开发人员使用他的资源管理器查看目标,即使我删除了目标文件,开发人员也会看到目标文件。
怎么会这样?我们如何解决这个问题?
PowerShell 函数本身非常轻量级。它基本上是为了部署:
Write-Host "Starting Copying files to $d"
$Copy = Copy-Item $FilesToPublish $d -Force -Recurse
Write-Host "Finished Copying files to $d"
Run Code Online (Sandbox Code Playgroud)
如果指定(并且已指定),该函数还将删除目标的所有锁
Get-SmbOpenFile -CimSession $Session | ? { $_.Path -like "$EndPath*" } | Close-SmbOpenFile -Force …Run Code Online (Sandbox Code Playgroud) 我正在尝试将添加到 Windows 2019 Server VM 的单独托管磁盘从标准 SSD 转换为高级 SSD。根据https://docs.microsoft.com/bs-latn-ba/Azure/virtual-machines/windows/convert-disk-storage 中的步骤,我将不得不停止 VM 来执行此操作——但我我担心如果我停止它,会产生连锁反应,延迟我的团队重新上线并立即继续工作的能力。我试图避免的一种特定情况是强制重新部署 VM。
看,我在此 Azure VM 上运行了第三方软件,如果重新部署 VM,则可能需要重置/重新初始化其软件许可模块 (SLM)。重新初始化可能是一个漫长的过程,因为我必须与技术支持通电话,请求帮助,重新路由谁知道多少次,然后等待重新颁发的许可证,应用新的许可证,并测试一切恢复正常。这是我试图避免的事情,因为当我让软件制造商重新发布/重新配置我的 SLM 时,它可能会使我的团队失去一天的工作价值。SLM 依赖于其主机的 CPUID 和 MAC ID。由于重新部署意味着虚拟机可能会部署在不同的物理硬件上,因此我很可能需要重置 SLM。我不
所以我的问题是,
如果我关闭 VM 进行维护(例如,将外部托管磁盘从标准 SSD 升级到高级 SSD),是否会强制重新部署?
关闭是否与在 Azure 门户上为该虚拟机点击停止有效相同?
我听说有一个停止和一个单独的停止/重新部署选项,但如果是这样,我不会立即看到。我点击“停止”后会看到重新部署选项吗?
我们正在尝试设置一个包含 25 个工作节点和 1 个主节点的集群。在此之前,我们需要选择硬件,尤其是主节点。
如何估算我们需要的硬件资源?主节点的硬件要求与集群的大小有关吗?我们可以遵循官方硬件推荐或资源规则之类的东西吗?
有多种部署/安装 ESX 的方法;RDP/PXE、从 CD、远程 ISO 启动等。
你最喜欢的方法是什么,为什么?
目前我们正在为我们的生产服务器运行 CentOS。我们正在使用 Apache 2.2、mod_wsgi 和 PostgreSQL 部署 Django 项目。
我们正在将 Python 2.5 设为默认版本。但是,此版本不在标准 CentOS 存储库中。我对 Debian/ubuntu 的了解比 CentOS 多。对于此要求,什么是更好的发行版选择,为什么?
我在 SBS 2008 的组策略管理编辑器中向我的网络计算机配置中添加了一个软件包。我注意到即使在添加该软件包并重新启动网络上的机器数次之后,它似乎也没有安装. 我想这是因为我需要确保将 MSI 设置为静默/安静安装。
关于如何去做的任何想法?
我正在寻找关于我们应该使用哪种工具来克隆服务器的建议。在短期内,我们将克隆相同的硬件,但从长远来看,我们可能希望创建一个映像并将其复制到不同类别的机器上。例如,随着戴尔发布新服务器,我们将希望继续使用我们已经制作的相同映像。
现在我们的服务器是 Windows(Server 2008 和 Server 2008 R2),但未来我们可能还需要 Linux 支持。
Ghost Solution Suite 2.5似乎是规范工具。有替代品吗?推荐/评论?
deployment ×10
docker ×3
kubernetes ×3
ansible ×1
apache-2.2 ×1
azure ×1
cloning ×1
django ×1
filesystems ×1
ghost ×1
group-policy ×1
installation ×1
linux ×1
powershell ×1
python ×1
rsync ×1
unix ×1
vmware-esx ×1
windows ×1