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スクリプトが保存されていますが、時々私のWebサイトを保存するためにレンタルしたリモートコンピュータの端末にコピーして貼り付けることもあります。 (現在は、数十/数百または数千台ではなく、このようなリモートコンピュータを1つだけ持つ予定です。ほとんどの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

誰かが「1つのマシンしか持っていて、Ansibleをまったく使用しないのは過剰です」と言うかもしれませんが、非常に「汚れた」インストールコマンドセットなので、自動化する必要性をまだ感じます。おそらく「明日」変更されます。 。

私の質問

Bash端末内で同じインストールを実行する方法(コマンドセットをコピーして貼り付けるなど)を説明する文献が見つかりませんでした。しかし、アンサーブルを使うと。また、Jeff Geerlingの著書「Ansible for Devops」の印刷版も購入しましたが、基本的な章のどれも私の特定の要件を満たしていませんでした。

私が見つけたのはIPリストにPlaybookファイルを配布する方法だけでしたが、Ansibleではこれらの「伝統的な」方法を使用したくありません。 GitHubから端末にAnsible YAMLコマンドセットをコピーしたいです。

私の質問

私が何をすべきか知っていますか?

答え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 ファイルに書き込んでから、スクリプトからプレイブックを呼び出すことができます。 yamlファイルをbashスクリプトに含めてから、スクリプト内から呼び出すことはできません。

答え2

プレイブックファイルを新しいホストにコピーし、次のyamlディレクティブを使用してlocalhostで再生します。

  • hosts: 127.0.0.1:localhost住所ほぼすべてのマシンに適しています
  • connection: local:yaml接続タイプの方向。この場合、ローカルで作業することを考慮すると、概念的には役に立ちませんが、現在のバージョンのAnsibleが構築される方法のために技術的に必要です。

バラよりここ血まみれの詳細のため。

関連情報