私は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が構築される方法のために技術的に必要です。
バラよりここ血まみれの詳細のため。