小编use*_*696的帖子

ansible-playbook额外的变量,有一个值的空间

当我使用以下命令运行我的剧本时,我遇到了通过额外变量提供值的问题:

ansible-playbook gitolite-docker.yml -e "GITOLITE_SSH_KEY=$(cat roles/gitolite-docker/files/john_rsa.pub)" --ask-vault-pass
Run Code Online (Sandbox Code Playgroud)

这是摘录 gitolite-docker.yml

- name: logging admin.pub
  shell: echo "{{GITOLITE_SSH_KEY}}" > /home/ansusersu/gitoliteadmin.pub

- name: create gitolite--docker container
  docker_container: 
    name: gitolite
    image: alex2357/docker-gitolite
    state: started
    ports:
      - "8081:22"
    volumes:
      - "/docker/volumes/gitoliterepositories:/home/git/repositories"
    env:
      SSH_KEY: "{{GITOLITE_SSH_KEY}}"
      KEEP_USERS_KEYS: "dummytext"      
  become: yes 
Run Code Online (Sandbox Code Playgroud)

问题是我只从SSH密钥中获得前几个字符"ssh-rsa".

john@john-VirtualBox:~$ sudo cat /home/ansusersu/gitoliteadmin.pub
ssh-rsa
john@john-VirtualBox:~$ 
Run Code Online (Sandbox Code Playgroud)

我在两种用法中得到完全相同的值{{GITOLITE_SSH_KEY}}.在Docker容器中,我在日志文件中具有完全相同的值.

对于Docker类似的线路工作正常:

docker run -d -p 8081:22 --name gitolite -e SSH_KEY="$(cat ~/.ssh/id_rsa.pub)" -v /docker/volumes/gitoliterepositories:/home/git/repositories alex2357/docker-gitolite
Run Code Online (Sandbox Code Playgroud)

当我看到在我看来,我将无法实现与Ansible,剧本相同的行为与码头工人,因为它认为,其余人员作为另一个额外的变种.有没有办法使它工作?

ansible ansible-playbook

9
推荐指数
1
解决办法
5043
查看次数

F#铁路编程此初始化可以改进吗?

我正在学习F#,不知道这种初始化数组的前N个元素的方法实现是否可以改进。目前,它工作得很好。我的意思是,如果它尝试通过执行对工厂的第二次调用来初始化第二个元素时失败,那么它将为第一个成功的结果调用undo。唯一的小问题是如果出错,它不会清除数组中的项目,但我不必担心。我担心的是,如果它在第2或第3或更高版本上失败,则应该撤消第一个成功的结果。如果成功,则成功结果应在“撤消”列表中包含所有要撤消的函子。

问题是我想避免递归,并使用类似Linq的东西进行迭代和执行操作,但是在这种情况下,如何使用bang(let!)尚不清楚

// val private initializeArrayInternal: 
//    arr    : 'a option [] ->
//    factory: unit -> RopWithUndo.Result<'a> ->
//    count  : int          ->
//    index  : int          
//          -> RopWithUndo.Result<'a option []>
let rec private initializeArrayInternal (arr: _ []) factory count index =
    if (arr.GetLength(0) < count) then 
        rwu.Failure "Count can not be greater than array length"
    else if (count = index ) then
        rwu.successNoUndo arr
    else 
        rwu.either {        
            let! element = factory()
            arr.[index] <- Some element 
            return (initializeArrayInternal …
Run Code Online (Sandbox Code Playgroud)

f#

3
推荐指数
1
解决办法
141
查看次数

F#Array.tryFindIndex从索引开始搜索

我想知道是否有一个便宜的(性能明智的)选项来搜索从索引开始满足某些条件的数组元素的索引?

Array.tryFindIndex方法没有参数startIndex。我可以做Array.skip(n)然后在那里搜索,但是创建一个仅用于搜索的数组似乎很昂贵。我该怎么做呢?

我看了一下List也没有那个说法。我需要在...期间使用吗?有更好的方法吗?

f#

3
推荐指数
1
解决办法
82
查看次数

较少的自定义功能/ mixin

例如,我有下一个更少的代码

form.someForm
{
    .form-group
    {
        > div
        {
            @media @wideMobile
            {
                width: calc(~"100%-144px");            
            }
        }

        > label
        {
            @media @wideMobile
            {
                width: 138px;            
            }
        }

    }
}  
Run Code Online (Sandbox Code Playgroud)

我想写点类似的东西

form.someForm
{
    .setWidths(138px,144px); 
}
Run Code Online (Sandbox Code Playgroud)

得到相同的结果.我怎样才能做到这一点?

less less-mixins

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

我可以在没有 vCenter 的情况下使用 Ansible 免费管理 vSphere 中的来宾虚拟机吗?

在我看来,大多数现有的 Ansible 模块都需要 vCenter。例如guest_module具有必需的参数 vcenter_hostname。问题是 - 是否能够使用 Ansible 管理 2-3 个 vSphere 主机?我需要创建虚拟环境(虚拟网络、来宾虚拟机、负载平衡端点)。

我也考虑过 Hyper-v,但它没有 Ansible 模块。直接 powershell 管理被认为是 Hyper-v 的最后手段。

vsphere ansible

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

标签 统计

ansible ×2

f# ×2

ansible-playbook ×1

less ×1

less-mixins ×1

vsphere ×1