当前位置: 首页 > 知识库问答 >
问题:

在运行ansible-playbook时获取主机名

冯鸿哲
2023-03-14

学习如何使用ansible--我需要为集群部署准备服务器

  • 在所有节点上安装相同的程序集,依此类推。这部分没有问题,一切都解决了。我是通过Ansible-Playbook来做的。在每个节点上,需要在文件/etc/sysconfig/network
  • 中执行
NETWORKING=yes
HOSTNAME=nn1
[cluster1]
nn1
dd1
dd2
dd3
dd4
- name: sysconfig -> network
  tags: wr_net_yes
  lineinfile:
    path: /etc/sysconfig/network
    line: "NETWORKING=yes"
    owner: root
    group: root
    mode: '0644'

- name: sysconfig -> network
  tags: wr_net_host
  lineinfile:
    path: /etc/sysconfig/network
    line: "HOSTNAME={{ network_wr }}"
    owner: root
    group: root
    mode: '0644'

也许一些建议,帮忙?

共有1个答案

长孙阳嘉
2023-03-14

您可以通过ansible变量来实现这一点,例如:

- name: sysconfig -> network
  tags: wr_net_host
  lineinfile:
    path: /etc/sysconfig/network
    line: "HOSTNAME={{ inventory_hostname }}"
    owner: root
    group: root
    mode: '0644'
 类似资料:
  • 我希望使用运行测试,但只能针对主机服务器1。有办法做到这一点吗?

  • 问题内容: 如果一切正常,或者某些任务进行了某些更改,则ansible-playbook运行将返回0。 我正在寻找一种方法,以便在上次运行期间发生更改时在命令行中获取信息。 有人知道这种方法吗? 背景是我想通过Jenkins管道监视我的服务器,并在发生更改时得到警报。 谢谢你的帮助。 问题答案: 使用如Ansible标准输出回调插件,这样Ansible将JSON格式返回机器可分析输出。 例如: 将

  • 如果我的问题不清楚,请让我知道。PG

  • 是否可以在 Ansible 主机上运行命令? 我的场景是,我想从内部托管的git服务器(并且不能在公司防火墙之外访问)进行结帐。然后我想将结账(tarbated)上传到正式服(托管在外部)。 目前,我正在考虑运行一个脚本,执行签出、tarballs,然后运行部署脚本-但如果我可以将其集成到Ansible中,那将是更好的选择。

  • 我正在编写一个剧本,它旋转X个EC2 AWS实例,然后在它们上安装一些软件(apt包和pip模块)。当我运行playbook时,它会在我的本地系统上执行shell命令,因为Ansible不会运行,除非我指定一个主机并放置localhost。 在playbook中,我尝试在顶层指定“hosts:all”,但这只会让playbook运行一秒钟而不做任何事情。 EC2实例创建得很好,“wait for

  • 我正在使用ansible编写API部署脚本。我希望通过我的库存文件中的每个主机顺序工作,这样我就可以一次完全部署到一台机器上。 谢谢