https://docs.oracle.com/cd/E19798-01/821-1757/6nmni99aj/index.html
as-install/bin/asadmin deploy war-name
文档提到了这个命令,但没有提到它将部署在哪里。它是否自动意识到应该部署在哪个域中?以及应该部署在什么位置?
https://docs.oracle.com/cd/E19798-01/821-1757/6nmni99aj/index.html
as-install/bin/asadmin deploy war-name
文档提到了这个命令,但没有提到它将部署在哪里。它是否自动意识到应该部署在哪个域中?以及应该部署在什么位置?
我们当前部署机器的方法是先从主驱动器镜像 NVME 驱动器,然后再将其安装到 PC 中。
我们正在向客户提供的机器上部署 Windows。因此,aad(以及自动驾驶仪)是不可能的。
我希望能够在安装 nvme 后部署一台机器,因此正在考虑 pxe 启动。
我有什么选择?我尝试过 netboot.xyz,但没有弄清楚如何使用它将 iso 或映像写入磁盘。我研究过自动驾驶仪,但找不到任何不使用域的指南。
提个醒:这是我第一次尝试在定制的 Windows 服务器上部署 react 应用程序,但我已经成功地在 Heroku 和 Linux (PM2) 上完成了它,所以我知道应用程序架构是假设的正常工作。
场景:
我已经构建了一个 Windows Server 2016 / 64 位托管服务器来托管多个网站。我已经使用 VPS Contabo 来做到这一点。我已经测试了所有应该工作的功能,即使是其他应用程序,如 ASP.NET、PHP、SSL 证书,一切都运行良好。
至于我试图在此服务器上托管的特定节点 js 项目,它由 2 个主要部分组成:
我为此在子域上创建了一个托管空间,它运行良好,即使使用 Let's Encrypt SSL 证书也是如此。如果有人想访问它,请访问: https ://backendnode.fullstackwebdesigner.com/system
这就是问题发生的地方。如果有人想访问它,这里是链接: https ://fullstackwebdesigner.com/
我对它们都使用了基本相同的技术:
问题:
我已经设法让它作为一个网站加载,就像我对后端所做的那样,但问题是它似乎没有加载 CSS 文件、图像等。所以布局不会加载。在控制台上,有错误消息:
Uncaught SyntaxError: Unexpected token '<'
react 应用程序:正如我之前所说,它是作为服务器端渲染应用程序完成的,并与 webpack 捆绑在一起。因此,它将捆绑的文件构建到名为“/build”的目录中。在这个目录中,有一个“/public”目录,所有资产都在其中,例如 CSS 文件和图像。
在开发时,我会在终端上运行构建:node build/bundle.react.js
尽管看起来很奇怪,但当我在 Windows 服务器的终端上运行它时,它运行良好。但只能通过以下方式访问:http://localhost:3001 它会加载所有应该加载的内容。
这是文件结构的简化表示:
- /build/
--bundle.react.js
--/build/public/
---/files-layout/
---/fonts/
---bundle.react.client.js
这也是我在网站托管空间上用于反应构建的 web.config 文件:
<configuration>
<system.webServer>
<iisnode nodeProcessCommandLine="C:\Program Files\nodejs\node.exe" />
<handlers>
<add name="iisnode" path="/build/bundle.react.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<!-- Redirect to HTTPS (alternative). -->
<rule name="Redirect to HTTPS / SSL" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
<!-- Don't interfere with requests for logs. -->
<rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^[a-zA-Z0-9_\-]+\.js\.logs\/\d+\.txt$" />
</rule>
<!-- Node. -->
<rule name="sendToNode">
<match url="(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/build/bundle.react.js" />
</rule>
</rules>
</rewrite>
<defaultDocument>
<files>
<clear />
<add value="/build/bundle.react.js" />
</files>
</defaultDocument>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
<system.web>
<compilation defaultLanguage="js" />
</system.web>
</configuration>
任何人都知道可能缺少什么或正在发生什么,因为在 web 上的 windows 服务器上托管服务器端渲染的参考文献不多?可能是 IIS、web.config 或网站托管空间上的额外配置?
编辑:
我刚刚做了一个有趣的测试:在我的本地开发计算机上,当我通过终端运行时:
node bundle.react.js
从 /build 文件夹中,我得到与在线发生的问题相同的结果(没有布局、样式、图像等)。
但是当我通过终端运行时:
node build/bundle.react.js
从 /build 文件夹外部(从基本目录),它可以完美加载。
关于更多的事情。基本目录的组织方式如下:
…(some folders)
- /build/
--bundle.react.js
--/build/public/
---/files-layout/
---/fonts/
---bundle.react.client.js
-node_modules
…(some root files, like webpack and so on)
我猜由于我如何编写 web.config 文件,引用 /node_modules 文件夹存在某种问题,但我不知道应该如何引用它。
(推荐我从 SuperUser 搬到这里)十多年前我运行了几个基于 Windows 的实验室,过去几年我主要在 AWS 和 GCP 中管理 Mac 和系统。目前,该公司正在招聘许多想在 Windows 笔记本电脑上工作的财务人员。基本设置是我设置了一个本地管理员帐户,这样我们就可以随时重新进入机器,为新员工添加一个用户帐户,并安装 Google Chrome、Office、Zoom 等基本应用程序。没什么太花哨的。我们没有运行活动域控制,此时没有 SCCM。在这种情况下,我想知道是否有一种方法可以对类似于 MacOS 迁移助手的新笔记本电脑进行简单的自动安装,其中一台新笔记本电脑已经从工厂安装了新的 Windows 操作系统,我只想转移用户帐户和安装了其他应用程序。
我在可公开访问的虚拟机上运行 Gitea gitea.myorg.foo
。这是与我的配置文件的 SSH 配置相关的服务器部分:
[server]
SSH_DOMAIN = gitea.myorg.foo
DOMAIN = gitea.myorg.foo
ROOT_URL = https://gitea.myorg.foo/
DISABLE_SSH = false
SSH_PORT = 22
OFFLINE_MODE = false
这意味着我运行的是服务器的 sshd,而不是 Gitea 的内部 sshd。
服务器在名为 的用户下运行git
。在/home/git/.ssh/authorized_keys
中,列出了授权密钥(每个用户和部署密钥)。
不幸的是,当我尝试克隆启用了该部署密钥的存储库时,未提供部署密钥。
假设我想克隆[email protected]/org/repo.git
,我得到一个签名与 Web UI 中“部署密钥”下显示的签名完全不同的密钥。当我运行时ssh-keyscan gitea.myorg.foo
,我只得到签名中找不到的/home/git/.ssh/authorized_keys
。
如何确定和配置 SSH 提供给客户端的密钥?
编辑:我注意到提供的密钥是标记为HostKey
定义的密钥/etc/ssh/sshd_config
。我需要使用 Gitea 的内部 SSH 服务器,还是可以相应地配置我的本地 SSH 服务器?
我对 Ansible 很陌生,所以我可能配置错误
[我有一个运行 Ansible 服务的 Docker 容器
我有一个包含 Ansible 文件的 Ansible 存储库(这是一个 .Git 存储库)
我的意愿是自动将 vCenter 服务器中的每个实验室恢复为特定快照
所以,我(在ansible-roles-explained-with-examples 指南的帮助下):
ansible-galaxy init
使用命令名称创建了一个角色vcenter
(参见下面的目录树)tasks
(请参见下面的目录树)。以下是poweroff.yml
任务文件的示例:- name: Set the state of a virtual machine to poweroff
community.vmware.vmware_guest_powerstate:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
folder: "/{{ datacenter_name }}/{{ folder }}"
# name: "{{ guest_name }}"
name: "{{ ansible_hostname }}"
validate_certs: no
state: powered-off
delegate_to: localhost
register: deploy
vcenter\vars\main.yml
,如下所示:# vars file for vcenter
vcenter_hostname: vcenter.foo.com
vcenter_username: [email protected]
vcenter_password: f#0$o#1$0o
datacenter_name: FOO_Fighters
# datastore_name:
cluster_name: FOO
folder: '/FOO/PRODUCT/DOMAIN.COM/'
tasks\main.yml
带有import-task
密钥的文件中,如下所示:---
# tasks file for roles/vcenter
- import_tasks: poweroff.yml
# - import_tasks: poweron.yml
# - import_tasks: revert.yml
# - import_tasks: shutdown.yml
all.yml
内部 group_vars 文件夹(我不知道它是否是一种专业的方法),其中包括所有 winrm 详细信息,如下所示:---
#WinRM Protocol Details
ansible_user: DOMAIN\user
ansible_password: f#0$o#1$0o
ansible_connection: winrm
ansible_port: 5985
ansible_winrm_scheme: http
ansible_winrm_server_cert_validation: ignore
ansible_winrm_transport: ntlm
ansible_winrm_read_timeout_sec: 60
ansible_winrm_operation_timeout_sec: 58
revert_lab.yml
包含角色的剧本,就像这样---
- name: revert an onpremis lab
hosts: all
roles:
- vcenter
我ansible.cfg
的是这样的:
[defaults]
inventory = /ansible/inventories
roles_path = ./roles:..~/ansible/roles
我执行了剧本来恢复实验室中的所有机器:
ansible-playbook playbooks/revert_vcenter_lab.yml -i inventories/test/onpremis/domain.com/lab_r.yml
我得到的错误是:
TASK [Gathering Facts] ****************************************************************************************************************************************************
[WARNING]: Error when collecting winrm facts: You cannot call a method on a null-valued expression. At line:15 char:17 + ...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.Not ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo :
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull at <ScriptBlock>, <No file>: line 15 at <ScriptBlock>, <No file>: line
13
ok: [vm1.domain.com]
ok: [vm2.domain.com]
ok: [vm3.domain.com]
ok: [vm4.domain.com]
ok: [vm5.domain.com]
ok: [vm6.domain.com]
ok: [vm7.domain.com]
ok: [vm8.domain.com]
TASK [vcenter : Set the state of a virtual machine to poweroff] ***********************************************************************************************************
fatal: [vm1.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM1'"}
fatal: [vm2.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM2'"}
fatal: [vm3.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM3'"}
fatal: [vm4.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM4'"}
fatal: [vm5.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM5'"}
fatal: [vm6.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM6'"}
fatal: [vm7.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM7'"}
fatal: [vm8.domain.com -> localhost]: FAILED! => {"changed": false, "msg": "Unable to set power state for non-existing virtual machine : 'VM8'"}
PLAY RECAP ****************************************************************************************************************************************************************
vm1.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
vm2.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
vm3.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
vm4.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
vm5.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
vm6.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
vm7.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
vm8.domain.com : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
a)我如何摆脱Error when collecting winrm facts
错误?(看起来 playbook 无法识别all.yml
带有 win 的文件,但为什么?)
b)如何修复错误“无法为不存在的虚拟机设置电源状态...”?(我们可以看到lab_r.yml文件(来自库存库)中提到的fqdns对机器的playbook访问,但错误与vCenter平台中显示的机器名称有关......)
我的存储库:
C:.
├───ansible
│ │ ansible.cfg
│ ├───inventories
│ │ └───test
│ │ ├───cloud
│ │ └───onpremis
│ │ └───domain.com
│ │ │ lab_j.yml
│ │ │ lab_r.yml
│ │ └───group_vars
│ │ all.yml
│ ├───playbooks
│ │ revert_lab.yml
│ └───roles
│ └───vcenter
│ ├───tasks
│ │ main.yml
│ │ poweroff.yml
│ │ poweron.yml
│ │ revert.yml
│ │ shutdown.yml
│ └───vars
│ main.yml
我的库存 lab_r.yml
- 这是部分架构
---
all:
children:
root:
children:
center:
children:
appservers:
hosts:
vm1.domain.com:
qservers:
hosts:
vm2.domain.com:
dbservers:
hosts:
vm3.domain.com:
我对 Ansible 很陌生,所以我可能配置错误
[我有一个运行 Ansible 服务的 Docker 容器
我有一个包含 Ansible 文件的 Ansible 存储库(这是一个 .Git 存储库)
我的意愿是自动将 vCenter 服务器中的每个实验室恢复为特定快照
所以,我(在ansible-roles-explained-with-examples 指南的帮助下):
ansible-galaxy init
使用命令名称创建了一个角色vcenter
(参见下面的目录树)tasks
(请参见下面的目录树)。以下是rever.yml
任务文件的示例:- name: Revert to a snapshot
vmware_guest_snapshot:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
state: revert
snapshot_name: CLEAN
delegate_to: localhost
vcenter\vars\main.yml
,如下所示:# vars file for vcenter
vcenter_hostname: vcenter.foo.com
vcenter_username: [email protected]
vcenter_password: f#0$o#1$0o
tasks\main.yml
带有import-task
密钥的文件中,如下所示:---
# tasks file for roles/vcenter
- import_tasks: poweroff.yml
- import_tasks: poweron.yml
- import_tasks: revert.yml
- import_tasks: shutdown.yml
revert_lab.yml
包含角色的剧本,就像这样---
- name: revert an onpremis lab
hosts: all
roles:
- vcenter
在执行 playbook 以还原实验室中的所有机器之前,我对 playbook 语法进行了一些检查:
ansible-playbook playbooks/revert_lab.yml --syntax-check
我得到的错误是:
[WARNING]: Ansible is being run in a world writable directory (/ansible), ignoring it as an ansible.cfg source. For more information see
https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current version: 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC
4.8.5 20150623 (Red Hat 4.8.5-44)]. This feature will be removed from ansible-core in version 2.12. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
ERROR! the role 'vcenter' was not found in /ansible/playbooks/roles:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/ansible/playbooks
The error appears to be in '/ansible/playbooks/revert_lab.yml': line 5, column 5, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
roles:
- vcenter
^ here
我决定ansible.cfg
使用 a 键添加到我的存储库roles_path
:
[defaults]
inventory = /ansible/inventories
roles_path = /ansible/roles
# roles_path = ./roles:..~/ansible/roles
我再次运行--syntax-check
命令但得到了同样的错误。我尝试了不同类型的角色路径语句 - 并得到了同样的错误。当然ansible-playbook
命令不起作用(带有相同的错误消息):
ansible-playbook playbooks/revert_lab.yml -i inventories/test/onpremis/domain.com/lab_r.yml
那么,如何让 ansible 识别我的角色?
如何使 ansible 成功运行我的剧本?
ansible.cfg 与“故事”相关还是无关?
我的存储库:
C:.
├───ansible
│ │ ansible.cfg
│ ├───inventories
│ │ └───test
│ │ ├───cloud
│ │ └───onpremis
│ │ └───domain.com
│ │ │ lab_j.yml
│ │ │ lab_r.yml
│ │ └───group_vars
│ │ all.yml
│ ├───playbooks
│ │ revert_lab.yml
│ └───roles
│ └───vcenter
│ ├───tasks
│ │ main.yml
│ │ poweroff.yml
│ │ poweron.yml
│ │ revert.yml
│ │ shutdown.yml
│ └───vars
│ main.yml
我正在尝试使用 powershell 在 Azure VM 上远程安装带有 pip 包的 python。部署到 VM 的脚本:
Start-Process 'F:\python-3.9.5-amd64.exe'-ArgumentList ("/passive", "InstallAllUsers=1", "PrependPath=1", "Include_test=0", "Include_pip=1") -Wait
Start-Sleep -s 120
& pip install urllib3 --no-index --find-links 'F:\urllib3-1.26.5-py2.py3-none-any.whl'
& pip install selenium --no-index --find-links 'F:\selenium-3.141.0-py2.py3-none-any.whl'
Python 在 Program Files 中正确安装,并添加了环境变量,但pip
无法识别。
我已经尝试在脚本 ( set
/ setx
..) 中为 Python 和 Scripts 文件夹设置一个环境变量,但它没有帮助。如果我识别到机器上的 RDP pip
,并且软件包安装正确。python
也不被识别(试过python -m pip install ...
)。
为什么点子不被识别?
我正在尝试使用 Azure 门户在 Azure 中创建一个 Windows VM。
我为 VM 选择的映像(VM 的基本操作系统)是:
Windows 10 Pro, Version 20H2 - Gen 1
但此图像的许可与 Windows 服务器图像不同。
Azure VM 创建的基本选项卡中的许可部分也因所选映像而异:
在定价计算器页面中,我可以Windows OS
在选择 VM 大小之前选择选项。我们也可以查看许可证的价格。但这只是Windows OS
指Windows server
吗?或者这是否也意味着 Windows 10 Pro 或 Enterprise?
在 Microsoft 文档中搜索时,它们仅提及Windows 10 Enterprise
Windows 10 映像。我找不到在Windows 10 Pro, version 20H2
任何地方部署 VM。
用户必须拥有以下订阅许可证之一才能在 Azure 中使用 Windows 10 映像。如果您没有这些订阅许可证之一,可以通过您的云服务合作伙伴或直接通过 Microsoft 购买。
符合条件的订阅许可证:
- 微软 365 E3/E5
- 微软 365 F3
- 微软 365 A3/A5
- Windows 10 企业版 E3/E5
- Windows 10 教育版 A3/A5
- 视窗 VDA E3/E5
这非常令人困惑。
是否可以使用Windows 10 Pro, Version 20H2
映像部署 Azure VM?
如果是,我应该如何获得许可证?
我可以通过支付更多费用购买带有 Azure VM 本身的 Windows 10 专业版许可证吗?
还是我应该获得 Microsoft 365 E3 许可证?(但 Microsoft 365 E3/E5/F3 都提供 Windows 10 Enterprise 许可证,而不是 Windows 10 pro!)
为这个 azure VM 购买新的 Windows 10 专业零售许可证是否可行?如果是,当这个 VM 被删除时,我可以为我的任何本地机器或任何其他 azure VM 重复使用该 Windows 10 专业版许可证吗?
或者我可以使用/转移现有的 Windows 10 专业版许可证(我已经用于我的本地机器)到这个 Azure VM?