ansible-playbook相关内容
在 Ansible 中,我编写了一个 Yaml 剧本,其中包含主机名列表和每个主机的执行命令.我已经为这些任务注册了一个变量,并在执行任务结束时将每个命令的输出附加到一个文件中.但是每次我尝试附加到我的输出文件时,只有最后一条记录被持久化. ---- 主机:list_of_hostsbecome_user: 某个用户变量:输出: []任务:- 名字:一些名字命令:一些命令寄存器:输出failed
..
我有一个通用的 webserver 角色,它使用另一个 nginx 角色来生成新的虚拟服务器. webserver/meta/main.yml 看起来像: allow_duplicates: 是依赖:- 角色:nginx名称:api虚拟服务器前端端口:“{{前端端口}}"域:“{{ api_domain }}"后端主机:127.0.0.1- 角色:nginx名称:门户虚拟服务器域:“{{
..
我想塑造我的 ansible 角色和剧本的目录结构. 目前我有一个类似的目录结构. group_vars* 全部* 一组- 组-vars.yml- 组 vault.yml...主机变量- server1.yml戏剧- java_plays* deploy_fun_java_stuff.yml* deploy_playbook.yml角色- 角色 1- 任务* main.yml- 处理程序-
..
我有一个在不同主机上运行不同角色的剧本.是否可以将变量从在一台主机上运行的一个角色传递到在同一剧本运行中运行的另一台主机上的另一个角色?或任何解决方法? 剧本主机 1角色1在这里我得到一些变量:var1 var2 ...等主机2角色2在这里,我需要使用上述主机/角色中的 var1 var2 ... etc role1 中设置变量 db 的任务如下所示: - shell: cd/ACE/con
..
我正在尝试使用 Ansible 编写部署规则.其中一些步骤是: 更新和升级服务器 创建一个名为 harry 的用户 为哈利添加公钥和私钥 从 bitbucket.org 克隆 Git 存储库 我想在他的主目录中以 harry 用户的身份克隆存储库(这就是我复制它的公钥和私钥的原因).问题是无法指定必须作为 git clone 执行的用户.所以 Ansible 尝试以 root
..
我刚开始使用 Ansible,并且一直在阅读此处和谷歌,还没有找到答案. 我的情况是,我在服务器上有 1 个用户,但需要将 2-3 个不同的公钥放入它的 authorized_keys 文件中. 我可以成功删除所有密钥,或使用此脚本添加所有密钥: ---- 主持人:所有任务:- 名称:更新 SSH 密钥授权密钥:用户:键:“{{ 查找('文件',项目)}}"状态:现在#独家:是的wi
..
我正在尝试改变这些 把我可以放在 ansible playbook 的东西写进去: # 安装 Prezto 文件shopt -s extglobshopt -s nullglobfiles=( "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/!(README.md) )对于“${files[@]}"中的rcfile;做[[ -f $rcfile ]] &&ln -s
..
我有一种情况需要检查本地机器上文件的状态(我将在其中调用 ansible-playbook ...). 如果用户创建的文件存在,则需要将其复制到远程主机.如果它不存在,那么远程主机都不需要它. 我知道我做过类似的事情: - 名称:检查 ~/.blah/config统计:路径=/home/ubuntu/.blah/config注册:stat_blah_config- 名称:用 blah
..
我正在使用 ansible 来部署我的应用程序.我正在使用以下命令从 github 克隆应用程序: - name:从 Github 存储库部署站点文件须藤:是的git: repo=git@github.com:xyz/abc.git dest=/home/{{deploy_user}}/{{app_name}} key_file=/home/ubuntu/.ssh/id_rsa accept_h
..
我有一系列编号的文件要由每个服务器单独处理.每个拆分文件使用 linux 拆分然后 xz 压缩以节省传输时间. split_001 split_002 split_003 ... split_030 如何使用 ansible 将这些文件推送到一组 30 个服务器?只要每个服务器都有一个唯一的文件,哪个服务器获取哪个文件并不重要. 我使用了 bash 文件,但我正在寻找更好的解决方
..
如何从 Ansible playbook 运行单个任务以及在该任务成功完成时收到通知的处理程序,同时跳过相关 playbook 中的所有其他任务? 目前我执行以下操作: ansible-playbook --start-at-task "task1" --step -K -i hosts playbook.yml 然后在任务完成后按Ctrl+c.但是,这也将跳过处理程序. 我知道我
..
我想在 Ansible 中使用以下处理程序: - 名称:强制 ntp 更新外壳:ntpdate {{item}}with_lines:/etc/ntpd.serverlist 但我希望它在第一次成功执行后结束执行(列表包含您可以尝试同步的 ntpd 服务器.一个就足够了).我该怎么做? 解决方案 这是一个非常有趣的情况.我没有亲自尝试过,但我想知道这样的事情是否可行: - 名称:强制
..
我想部署额外的 mysql 用户 - 如果设置.所以我正在使用字典.例如: mysql_additional_users:用户 1:密码:mysecretpassprivs: "database1.*:ALL" 只要定义了字典,它就可以正常工作.如果没有 - 它会失败. 虽然我试图确定,如果 dict 已定义: - 名称:创建额外的 mysql 用户mysql_user: name=
..
我在运行 ansible 时遇到一个非常奇怪的错误: 收集事实 *******************************************************************致命:[i-0f55b6a4] => 无法创建目录/$HOME/.ansible/cp:[Errno 13] 权限被拒绝:'/$HOME'任务:[任务#1] *********************
..
我有 2 个剧本在 ansible 上运行,一个接一个.剧本 1 完成后,我想仅在第一个剧本完全成功的主机上运行第二个剧本.查看 ansible 文档,我找不到有关哪些主机使特定剧本失败的任何可访问信息.这怎么可能? 仅供参考,我需要单独的剧本,因为第二本必须串行运行,仅在剧本级别可用 解决方案 其中all hosts - success hosts = failed hosts,可
..
假设 user01 定义了两个组:groupA 和 groupB(除了主要组). 我可以使用以下方法将帐户添加到 groupC(确保 user01 属于 groupC): - 用户:名称=user01 groups=groupC append=yes 如何从 groupB 中删除 user01(确保 user01 不属于 groupB)而不指定所有该帐户应属于哪些组? 解决方案
..
我有兴趣了解 Ansible 是否可以异步运行包含的剧本? 基本上我要做的是运行一个任务“即发即忘,稍后再检查".当我稍后检查它时,我还想发送一个带有结果的 slack 通知. 但是,我注意到包含的松弛通知剧本需要比预期更长的时间才能完成,因此它可以支撑剧本的其余部分. 我想要的是异步包含的 playbook 以获取 slack 通知,以便当前的 playbook 继续.
..
我正在使用 Ansible playbook 配置服务器.我的剧本在第一次执行时正常工作,但是当我再次运行相同的剧本时,它会在服务器上的配置文件中创建重复行.我正在使用 lineinfile 模块.每次运行剧本时,以下任务示例都会添加该行. - lineinfile: dest=/etc/pam_ldap.conf line="ssl off" 有没有办法避免这种情况,并保持幂等性. 解
..
我正在尝试在 ansible 中设置特定于环境的变量(例如生产、登台、开发).出于某种原因,ansible 没有在 group_vars/[environment] 中提取变量. 我使用的是 ansible 1.9.1 这是我正在尝试做的一个精简的例子. 目录结构: .├── group_vars│ └── 舞台├── 主机│ └── 舞台└── 网站.yml group
..
我有一个 shell 脚本,它的输出是以下格式的回显 ;; 等 我想使用这些变量并运行一个 mysql 查询来更新这样的数据库 mysql -u-p-h-e'插入 test_table 值 ("variable_1","variable_2","variable_3")' 我的 ansible 剧本是这样的. ---- 主机:信息服务器须藤:是的收集事实:没有任务:- 名称:收集
..