在 Bash 中使用 Ansible

在 Bash 中使用 Ansible

我使用 Ubuntu 18.04,并通过以下方式安装了 Ansible:

apt-get update -y
install software-properties-common
apt-add-repository ppa:ansible/ansible
apt install ansible

我还有一个存储在 GitHub 中的小 Bash 脚本,有时我会将其复制粘贴到我租用的用于存储自己网站的远程计算机的终端中(目前我计划只拥有一台这样的远程计算机,而不是数十/数百或对于大多数 Ansible 用户来说常见的是数千)。

剧本

#!/bin/bash
apt-get update -y
apt-get install lamp-server^
apt-get install php-mbstring php-mcrypt php-curl php-cli php-gd
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer

有人可能会说“好吧,如果只是一台机器根本不使用 Ansible,那将是一种矫枉过正”,但我仍然觉得有必要将其自动化,因为它是一个非常“混乱”的安装命令集,可能会改变“明天” ”。

我的问题

我没有找到文献来解释如何在 Bash 终端内进行相同的安装(例如通过复制粘贴命令集)但使用 Ansible。我还购买了 Jeff Geerling 的书《Ansible for Devops》的印刷版,但基本章节都没有满足我的特殊需求。

我找到的只是如何将 playbook 文件部署到 IP 列表,但我不想对 Ansible 使用这种“传统”方式。我只想将 Ansible YAML 命令集从 GitHub 复制到我的终端。

我的问题

你知道我该怎么做吗?

答案1

来自 Ansible 文档:

    - name: Install a list of packages
apt:
    name: "{{ packages }}"
vars:
    packages:
    - foo
    - foo-tools

    - name: Download foo.conf
get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    mode: 0440

因为这是用 Ansible Playbook 格式编写的。您需要将其写入 yaml 文件,然后可以从脚本中调用 playbook。您无法将 yaml 文件嵌入到 bash 脚本中,然后在脚本中调用它。

答案2

只需将 playbook 文件复制到新主机并使用以下 yaml 指令将其播放到本地主机:

  • hosts: 127.0.0.1:localhost地址适用于几乎所有机器
  • connection: local:连接类型的 yaml 方向;鉴于我们在这种情况下在本地工作,它在概念上是无用的,但由于当前版本的 Ansible 的构建方式,它在技术上是必要的)。

这里对于血淋淋的细节。

相关内容