小编Gui*_*Don的帖子

Ansible - 在需要时动态提示保管库密码

语境

\n\n

在我的公司,我们有一个共享存储库,其中包含服务器的 ansible 脚本。我想在不久的将来引入保管库变量来处理服务密码。目前,我们在剧本的开头使用加密的密码提示。这个解决方案很烦人(在某些剧本上它要求输入 3 个密码)。

\n\n

需要

\n\n

由于我们大多数 ansible 用户都不是专家,我希望他们能够顺利运行 playbook。这意味着ansible-playbook命令应该简短并且无需任何强制参数(例如 no--ask-sudo-pass等)即可工作。这也意味着我更喜欢仅在需要 \xe2\x80\x99s 时才在剧本开头提示输入保管库密码。\n此外,我不想使用 ansible 密码文件,因为它不容易共享,而且我不\xe2 \x80\x99t 喜欢在我们所有 ansible 用户计算机上拥有明文密码文件的想法。

\n\n

问题

\n\n

为每个相关的剧本添加--ask-vault-pass并不是一种选择。我们的ansible用户不会理解为什么有时需要这个参数,为什么有时不需要\xe2\x80\x99。相反,询问每个剧本的保管库密码是一种负担,因为我们有很多剧本,并且每次都已经询问了 sudo 密码。

\n\n

我尝试使用prompts各种选项来实现以下解决方案。似乎什么都不起作用。文档没有解释如何执行此操作:

\n\n

最好的解决方案(据我所知)

\n\n

让\xe2\x80\x99s看看这个main.yml文件:

\n\n
- import_tasks: foo.yml\n  tags: always\n\n- import_tasks: bar.yml\n  tags: bar\n\n# Only this tasks uses a vault encrypted variable\n- import_tasks: baz.yml\n  tags: [baz, vault]\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,有\xe2\x80\x99s a playbook.yml,导入该main.yml文件。

\n\n

在一个完美的世界里,我希望这样的事情发生:

\n\n

示例1:

\n\n …

ansible ansible-2.x

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

在不告别压缩的情况下缓解BREACH攻击

无处不在我寻找缓解此漏洞的解决方案,我发现如下:

只需禁用http压缩.

嗯,这很痛苦,因为压缩可以节省大量带宽,也可以让您的网页加载速度更快.此外,我读到的关于BREACH的内容是,攻击者可以使用压缩长度来读取压缩文档中的一些(可能是秘密的)信息.

现在,让我们承认我在加载的页面中确实有一些秘密信息,这并不意味着像CSS或JS那样的静态资源.

那么,它是否只是为html页面(动态或非动态)禁用压缩并为CSS或安全JS等非秘密资源启用压缩的解决方案?

apache security

5
推荐指数
1
解决办法
838
查看次数

使用Doctrine批量插入时内存使用量很大

我正在尝试使用Doctrine2和Symfony2 fixture bundle在MySQL数据库中插入大量数据(30 000多行).

我看着正确的方法去做.我看到很多关于内存泄漏和Doctrine的问题,但对我来说没有令人满意的答案.通常是Doctrine clear()函数.

所以,我做了各种各样的形状:

while (($data = getData()) {
    $iteration++;

    $obj = new EntityObject();
    $obj->setName('henry');
    // Fill object...

    $manager->persist($obj);

    if ($iteration % 500 == 0) {
        $manager->flush();
        $manager->clear();

        // Also tried some sort of:
        // $manager->clear($obj);   
        // $manager->detach($obj);
        // gc_collect_cycles();
    }
}
Run Code Online (Sandbox Code Playgroud)

flush()(在我确定的情况下),PHP内存仍然很疯狂.事实上,每次刷新实体时,内存会根据批量大小和实体而上升一定量,直到达到致命的允许内存大小耗尽错误.使用非常小的实体,它可以工作,但内存消耗增加太多:几MB而应该是KB.

clear(),detach()或调用GC似乎没有产生效果的.它只清除一些KB.

我的做法有缺陷吗?我在某处错过了什么吗?这是一个错误吗?

更多信息:

  • 没有flush()记忆几乎没动;
  • 降低批次不会改变结果;
  • 数据来自需要消毒的CSV;

编辑(部分解决方案):

@qooplmao带来了一个显着降低内存消耗的解决方案,禁用doctrine sql logger: $manager->getConnection()->getConfiguration()->setSQLLogger(null);

然而,它仍然异常高并且在增加.

php memory symfony doctrine-orm

5
推荐指数
1
解决办法
3138
查看次数

标签 统计

ansible ×1

ansible-2.x ×1

apache ×1

doctrine-orm ×1

memory ×1

php ×1

security ×1

symfony ×1