小编Zei*_*tor的帖子

紧凑():未定义的变量:运算符

我收到以下错误

  (1/1) ErrorException
  compact(): Undefined variable: operator
Run Code Online (Sandbox Code Playgroud)

这是我的代码行

$postsCat = Post::whereHas('Cat', function($query) use ($sreachWord) {
    return $query->whereRaw('name REGEXP"'.sql_text_to_regx($sreachWord).'"');
})->orderBy('top','desc')
->orderBy('updated_at','desc')
->paginate(30);

Run Code Online (Sandbox Code Playgroud)

为什么会这样?是因为我的 PHP 版本 (7.3) 还是其他原因?

php laravel

25
推荐指数
3
解决办法
3万
查看次数

字典键中的 Ansible 变量

我正在尝试执行用于设置戴尔服务器的剧本,但 module 中的字典存在一些问题idrac_redfish_config。我需要为特定用户启用 SOL,但为此我想使用字典中带有变量的键,因为用户 ID 可能因服务器而异。

我如何尝试将变量添加到字典键中,如下所示:

    - name: Store id test-user
      set_fact:
        ID: "{{ result.redfish_facts.user.entries | json_query(\"[?UserName=='test-user'].Id\") }}"
    - name: Enable SOL for test-user
      community.general.idrac_redfish_config:
        category: Manager
        command: SetManagerAttributes
        resource_id: iDRAC.Embedded.1
        manager_attributes:
          Users.{{ ID[0] }}.SolEnable: "Enabled" <---
          Users.{{ ID[0] }}.IpmiLanPrivilege: "Administrator" <---
        baseuri: "testhost"
        username: "admin"
        password: "admin"
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

TASK [Store id test-user] **************************************************************************************************************************************************************************************
ok: [localhost] => {
    "ansible_facts": {
        "ID": [
            "8"
        ]
    },
    "changed": false
}

TASK [Enable SOL for test-user] ********************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! …
Run Code Online (Sandbox Code Playgroud)

ansible

11
推荐指数
1
解决办法
1万
查看次数

AnsibleError:模板化字符串时出现模板错误:预期标记“打印语句结束”,得到“{”

以下是一个任务,它向我抛出一个错误,因为 jinja2 模板不支持此操作。

- name: Print the ip address
  debug:
    msg: "{{ ansible_{{ item }}['ipv4']['address'] }}"
  with_items: "{{ ansible_interfaces|reject('search', 'lo')|list|sort }}"
Run Code Online (Sandbox Code Playgroud)

抛出的错误是:

"msg": "模板化字符串时出现模板错误:预期标记'打印语句结束',得到'{'。字符串:{{ ansible_{{ item }}['ipv4']['address'] }}"

有关如何解决这个问题的任何指示吗?

jinja2 ansible

8
推荐指数
2
解决办法
2万
查看次数

Docker sleep 命令有什么作用?

我找不到关于 Docker sleep 命令的作用的明确解释,有人可以解释一下吗?例如:

docker container run -d alpine sleep 1d
Run Code Online (Sandbox Code Playgroud)

我在网上查了一下,但找不到简单的解释。

docker dockerfile docker-compose docker-swarm docker-machine

8
推荐指数
1
解决办法
4万
查看次数

Ansible 中检查命令是否可用的最佳方法是什么?

我使用以下块来检测自制程序是否已安装。在新版本中,自制程序安装在/opt/文件夹中,而我的 \xe2\x80\x9csolution\xe2\x80\x9d 不再工作。检查命令是否可用的更好方法是什么?

\n
- name: Check if homebrew is installed\n  stat:\n    path: "/usr/local/bin/brew"\n  register: "homebrew_check"\n
Run Code Online (Sandbox Code Playgroud)\n

我知道which一些考虑因素command -v,但假设 Ansible 本身应该有一些东西,我错了吗?

\n

ansible

8
推荐指数
2
解决办法
1万
查看次数

恢复使用副本创建的备份文件

copy如果使用(with )创建备份文件backup: yes,例如,通过以下任务:

- name: copy file
  copy: 
    dest: path/to/dest
    src: path/to/src
    backup: yes
Run Code Online (Sandbox Code Playgroud)

如果文件path/to/dest已经存在,它将被移动到如下所示的文件中path/to/dest.12345.2006-07-08@09:10:11

有没有办法恢复它,或者获取备份文件的文件名以便恢复它?

ansible

7
推荐指数
2
解决办法
6554
查看次数

如何检查 docker compose 插件是否已安装?

我可以docker通过which dockercommand -v docker命令检查是否已安装。但我需要检查docker的compose插件是否已安装(我会像docker compose up -d稍后一样使用它)。

bash docker docker-compose

7
推荐指数
1
解决办法
1万
查看次数

如何在 vscode 中正确使用 go 模块?

我在我的 mac 上使用 vscode 1.41.1 几个月了,它运行良好,直到我开始使用 go 模块进行依赖管理。目前,我正在重写一个简单的工具,并为不同的功能引入包。

我的代码结构如下所示:

??? bmr.go -> package main & main(), uses below packages
??? check
?   ??? check.go -> package check
?   ??? check_test.go
??? go.mod
??? go.sum
??? push
?   ??? push.go -> package push
?   ??? push_test.go
??? s3objects
    ??? s3objects.go -> package s3objects
    ??? s3objects_test.go
Run Code Online (Sandbox Code Playgroud)

我的 go.mod 文件如下所示:

模块 github.com/some-org/business-metrics-restore

go 1.13

require (
        github.com/aws/aws-sdk-go v1.28.1
        github.com/go-redis/redis v6.15.6+incompatible
        github.com/sirupsen/logrus v1.4.2
        github.com/spf13/viper v1.6.1
        github.com/stretchr/testify v1.4.0
        golang.org/x/sys v0.0.0-20200113162924-86b910548bc1
)
Run Code Online (Sandbox Code Playgroud)

当我从 shell 调用 go …

visual-studio-code go-modules

6
推荐指数
3
解决办法
2万
查看次数

如何将十进制字符串转换为十六进制字符串?

我有一个剧本,用于查询服务器的 SystemID,可以使用供应商提供的将 id 映射到模型的表将其转换为型号。服务器返回十进制值,但表使用等效的十六进制值。

我想要做的是将十进制字符串转换为可以与供应商提供的表中的条目匹配的十六进制字符串。

例子:

Server returns: SystemID = 1792
Matching entry in vendor table: 0x0700
Run Code Online (Sandbox Code Playgroud)

我在 Ansible 文档和 Web 中搜索了本机 Ansible 命令或 jinja2 表达式来进行转换。

我只发现int(value, base=x)jinja2 函数的作用与我想要做的相反。

本机 pythonhex()命令可以做到这一点。但如果可能的话我想避免这种情况。

以下是解析服务器标准输出以获取 systemid 值的 playbook 任务:

Server returns: SystemID = 1792
Matching entry in vendor table: 0x0700
Run Code Online (Sandbox Code Playgroud)

环境:Ansible 2.9.7 Python 3.8.0 macOS 10.15.4

jinja2 ansible

6
推荐指数
1
解决办法
6277
查看次数

无法导入所需的Python库(botocore或boto3)

我正在本地主机上运行一个 playbook,并且我已经安装了 ansible 和所需的包(如 boto3)。该剧本在远程主机上执行任务时工作正常,但在本地运行时输出以下错误。

命令:

ansible-playbook app.yaml
Run Code Online (Sandbox Code Playgroud)

错误:

fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (botocore or boto3) on DESKTOP-9NTDHK1's Python /usr/bin/python3. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}
Run Code Online (Sandbox Code Playgroud)

安斯波版本:

ansible 2.10.3
  config file = /home/user/ansible/ansible.cfg
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location …
Run Code Online (Sandbox Code Playgroud)

ansible boto3

6
推荐指数
1
解决办法
2万
查看次数