※当サイトの記事には、広告・プロモーションが含まれます。

Ansibleの実行できる環境を構築してみる

gigazine.net

生物学や医学の分野は、人間の学者であれば達成までに50年から100年かかる進歩が、AIの活用によって5年から10年に圧縮可能であると、AI企業・Anthropicのダリオ・アモデイ氏が予想しました。アモデイ氏はこれを「圧縮された21世紀(compressed 21st century)」と表現しましたが、一方で、AI開発プラットフォーム・Hugging Faceの最高科学責任者であるトーマス・ウルフ氏は、AI開発が現状のまま進むと、生まれるのは単なる「サーバー上のイエスマン」であり、「圧縮された21世紀」はもたらされないのではないかと懸念を示しています。

AIの真のブレイクスルーはこのままでは訪れないとAI開発プラットフォーム・Hugging Faceの最高科学責任者が懸念 - GIGAZINE

ウルフ氏は、すでに「全人類の知識」を得ているはずのAIがブレイクスルーにつながらない理由を「人類がすでに知っていることの隙間を埋めているだけだから」と説明し、科学的ブレイクスルーを目指すのであれば、以下のようなことができるかどうかをテストするベンチマークに移行するべきだと述べました。

AIの真のブレイクスルーはこのままでは訪れないとAI開発プラットフォーム・Hugging Faceの最高科学責任者が懸念 - GIGAZINE

・自分自身のトレーニングデータの知識に挑む
・事実に反する大胆な手法を取る
・小さなヒントをもとに一般的な提案を行う
・新たな研究の道筋につながるような、自明ではない質問をする

AIの真のブレイクスルーはこのままでは訪れないとAI開発プラットフォーム・Hugging Faceの最高科学責任者が懸念 - GIGAZINE

⇧ う~む、どちらかというと、「AI」には「幻覚(ハルシネーション)」の抑制を頑張ってもらいたいのだが...

  1. 厳密なAIの研究・開発
  2. イノベーション的なAIの研究・開発

の両軸で並行して進めて欲しい気はしますな...

Ansibleの実行できる環境を構築してみる

前回、

ts0818.hatenablog.com

⇧ Ansibleを実行する環境構築の話をしたので、実際に環境を構築してみます。

登場人物としては、

⇧ 上図のような感じ。

で、Ubuntuなのですが、

ubuntu.com

⇧ リリースとサポートの状況は上記のような感じなのだが、「24.xx」が動かず、「22.0x」も自分の環境だと駄目だったので、

releases.ubuntu.com

⇧「Ubuntu 20.04. LTS Desktop」をダウンロードして利用する。

まずは、「名前」を適当に入力し、(「IOSイメージ」はまだ設定しない)

「自動インストール」は特に何もいじらず、

「ハードウェア」で「メモリ」と「CPU」を設定。

「仮想ハードディスク」は「50 GB」に増やしました。

仮想マシンVM:Virtual Machine)」が作成できたら、各種設定していきます。

「Desktop」版なので、「ディスプレイ」を「128 MB」にしておきます。「3Dアクセラレーションを有効化」のチェックボックスはチェックを入れずにおきます。

「ストレージ」で「デバイス」の「コントローラーIDE」で「光学ドライブの追加」を選択し、

「追加」選択。

ダウンロードしておいた「IOSイメージ」を選択し、「開く」ボタン押下。

続いて、「ネットワーク」を選択し、「アダプター2」タブを選択し、「ネットワークアダプターを有効化」のチェックボックスにチェックを入れ、「割り当て」で「ホストオンリーアダプター」を選択。

続いて、「アダプター3」タブを選択し、同じ要領で「内部ネットワーク」を割り当てる。

諸々の設定が済んでいることが確認できたら、起動する。

一旦、インストールをキャンセルして、画面上で右クリックし、「Display Settings」を選択。(解像度の問題で、インストールの選択が見切れるので)

変更する。

「Keep Changes」で。

「日本語」を選択し「続ける」ボタン押下。

「Japanese」を選択し「続ける」ボタン押下。

「最小インストール」を選択し「続ける」ボタン押下。

「インストール」ボタン押下。

「続ける」ボタン押下。

「続ける」ボタン押下。

適当に入力し「続ける」ボタン押下。

インストールされるのを待ちます。

「今すぐ再起動する」を選択。

「内部ネットワーク」の設定をします。(「VirtualBox」は「NAT」と「ホストオンリーアダプター」は良しなに設定されるっぽいのだが、「内部ネットワーク」は手動で設定が必要)

「Vagrantfile」の「内部ネットワーク」の「IPアドレス」と合わせた「IPアドレス」を設定しておきます。

と思ったら、「ホストオンリーアダプター」のネットワークが繋がらない...

一旦、「仮想マシンVMVirtualBox)」を停止。

VirtualBox マネージャー」で「ネットワーク」の確認してみたところ、「DHCP」が無効になっていらっしゃる...

「有効」にしました。

して、「仮想マシンVMVirtualBox)」を再起動。

今度は大丈夫そうです。

「端末」を起動し、「ip a」で確認したところ、「ホストオンリーアダプター」に該当する「仮想NIC」に「IPアドレス」割り振られてました。

あとは、

zenn.dev

⇧ 参考サイト様の通りに、必要なライブラリをインストールしていきます。

やることは、

  1. Ubuntu をアップデート
  2. Guest Additions をインストール
  3. sshpass、Python、Ansible をインストール
  4. Ansible をアップデート
  5. SSH系の設定
    1. 管理対象ノードのフィンガープリントを無視
  6. VS Codeのインストール

⇧ 上記の6つ。参考サイト様の通りの手順を実施すればOK。

「2. Guest Additions をインストール」のところで、

ameblo.jp

⇧ 上記サイトにありますように、「スケールモード」からの復帰が必要になってきますが...

「6. VS Codeのインストール」は、「ネットワークアダプター」で「NAT」が有効になっているはずなので、「ゲストOS」からインターネットにアクセスできるので問題ないはず。

で、諸々のインストールなどが完了したら、続いて、「Vagrant」で他2台の「仮想マシンVM:Virtual Machine)」を作成します。

「Vagrantfile」を用意。

■Vagrantfile

#
# Common settings for all virtual machines
#
Vagrant.configure("2") do |config|
  config.vm.provider "virtualbox" do |vb|
#    vb.memory = "4096"
    vb.memory = "1024"
#    vb.cpus = 1
    vb.cpus = 2
    vb.gui = true
    vb.customize [
      "modifyvm", :id,
      "--ioapic", "on",
      "--graphicscontroller", "vmsvga",
      "--nicpromisc2", "allow-all"
    ]
  end

#
## CentOS 8 / marutamachi
##
#  config.vm.define :marutamachi do |marutamachi|
#    marutamachi.vm.box = "centos/8"
#    marutamachi.vm.network "private_network", mac: "00006c000101", ip: "192.168.111.101", virtualbox__intnet: true
#    marutamachi.vm.hostname = "marutamachi.example.jp"
#    marutamachi.vm.provider "virtualbox" do |vb|
#      vb.name = "marutamachi"
#    end
#    marutamachi.vm.provision "shell", inline: $remove_vmtools
#    marutamachi.vm.provision "shell", inline: $common_provisioning
#    marutamachi.vm.provision "shell", inline: $centos8_provisioning
#  end
#
##
## CentOS 7 / takeyamachi
##
#  config.vm.define :takeyamachi do |takeyamachi|
#    takeyamachi.vm.box = "centos/7"
#    takeyamachi.vm.network "private_network", mac: "00006c000102", ip: "192.168.111.102", virtualbox__intnet: true
#    takeyamachi.vm.hostname = "takeyamachi.example.jp"
#    takeyamachi.vm.provider "virtualbox" do |vb|
#      vb.name = "takeyamachi"
#    end
#    takeyamachi.vm.provision "shell", inline: $remove_vmtools_yum
#    takeyamachi.vm.provision "shell", inline: $common_provisioning
#    takeyamachi.vm.provision "shell", inline: $centos7_provisioning
#  end

#
# Ubuntu 20.04 LTS / ebisugawa
#
  config.vm.define :ebisugawa do |ebisugawa|
    ebisugawa.vm.box = "ubuntu/focal64"
#    ebisugawa.vm.network "private_network", mac: "00006c000103", ip: "192.168.111.103", virtualbox__intnet: true
    # ホストオンリーアダプター
    ebisugawa.vm.network "private_network", ip: "192.168.56.103"
    # 内部ネットワーク
    ebisugawa.vm.network "private_network", ip: "192.168.111.103", virtualbox__intnet: true
    ebisugawa.vm.hostname = "ebisugawa.example.jp"
    ebisugawa.vm.provider "virtualbox" do |vb|
      vb.name = "ebisugawa"
    end
    ebisugawa.vm.provision "shell", inline: $remove_vmtools_apt
    ebisugawa.vm.provision "shell", inline: $common_provisioning
    ebisugawa.vm.provision "shell", inline: $ubuntu_provisioning
  end

#
# Ubuntu 18.04 LTS / nijyo
#
  config.vm.define :nijyo do |nijyo|
    nijyo.vm.box = "ubuntu/bionic64"
#    nijyo.vm.network "private_network", mac: "00006c000104", ip: "192.168.111.104", virtualbox__intnet: true
    # ホストオンリーアダプター
    nijyo.vm.network "private_network", ip: "192.168.56.104"
    # 内部ネットワーク
    nijyo.vm.network "private_network", ip: "192.168.111.104", virtualbox__intnet: true
    nijyo.vm.hostname = "nijyo.example.jp"
    nijyo.vm.provider "virtualbox" do |vb|
      vb.name = "nijyo"
    end
    nijyo.vm.provision "shell", inline: $remove_vmtools_apt
    nijyo.vm.provision "shell", inline: $common_provisioning
    nijyo.vm.provision "shell", inline: $ubuntu_provisioning
  end

#
## Debian 10 / oshikoji
##
#  config.vm.define :oshikoji do |oshikoji|
#    oshikoji.vm.box = "debian/buster64"
#    oshikoji.vm.network "private_network", mac: "00006c000105", ip: "192.168.111.105", virtualbox__intnet: true
#    oshikoji.vm.hostname = "oshikoji.example.jp"
#    oshikoji.vm.provider "virtualbox" do |vb|
#      vb.name = "oshikoji"
#    end
#    oshikoji.vm.provision "shell", inline: $common_provisioning
#    oshikoji.vm.provision "shell", inline: $set_vagrant_password
#    oshikoji.vm.provision "shell", inline: $debian_provisioning
#  end
#
##
## AlmaLinux 8 / oike
##
#  config.vm.define :oike do |oike|
#    oike.vm.box = "almalinux/8"
#    oike.vm.network "private_network", mac: "00006c000106", ip: "192.168.111.106", virtualbox__intnet: true
#    oike.vm.hostname = "oike.example.jp"
#    oike.vm.provider "virtualbox" do |vb|
#      vb.name = "oike"
#    end
#    oike.vm.provision "shell", inline: $common_provisioning
#    oike.vm.provision "shell", inline: $centos8_provisioning
#  end

end

#
# Common provisioning for all virtual machines
#
$common_provisioning = <<-'SCRIPT'
timedatectl set-timezone Asia/Tokyo
sed -e s/^'PasswordAuthentication no'/'PasswordAuthentication yes'/ /etc/ssh/sshd_config > /tmp/sshd_config
mv -f /tmp/sshd_config /etc/ssh/
chmod 0600 /etc/ssh/sshd_config
systemctl restart sshd.service
SCRIPT

#
# Remove open-vm-tools
#
$remove_vmtools = <<-'SCRIPT'
dnf -y remove open-vm-tools
SCRIPT

#
# Remove open-vm-tools (yum command)
#
$remove_vmtools_yum = <<-'SCRIPT'
yum -y remove open-vm-tools
SCRIPT

#
# Remove open-vm-tools (apt command)
#
$remove_vmtools_apt = <<-'SCRIPT'
apt -y remove open-vm-tools
SCRIPT

#
# Set the password for the account vagrant
#
$set_vagrant_password = <<-'SCRIPT'
echo 'vagrant' > pass.txt
echo 'vagrant' >> pass.txt
passwd vagrant < pass.txt
SCRIPT

#
## Provisioning for CentOS8
##
#$centos8_provisioning = <<-'SCRIPT'
#dnf -y update
#reboot
#SCRIPT
#
##
## Provisioning for CentOS7
##
#$centos7_provisioning = <<-'SCRIPT'
#yum -y update
#reboot
#SCRIPT

#
# Provisioning for Ubuntu
#
$ubuntu_provisioning = <<-'SCRIPT'
apt -y update
apt -y dist-upgrade
reboot
SCRIPT

#
## Provisioning for Debian
##
#$debian_provisioning = <<-'SCRIPT'
#apt -y update
#apt -y upgrade
#reboot
#SCRIPT    

⇧ 参考サイト様のものを流用。

適当な場所に配置。

コマンドプロンプト」などで、「Vagrantfile」の配置されてるディレクトリに移動し、以下のコマンドを実行。

■Vagrantfileの内容で仮想マシン構築、起動

vagrant up    

起動されました。

で、「Ansible」のインストールされている「仮想マシンVM:Virtual Machine)」に移動して、「Vagrant」で起ち上げた「仮想マシンVM:Virtual Machine)」に対して、「ping」で疎通確認。

問題無く通信できていそうです。

SSH」接続はというと、

⇧ 「Ubuntu 18.04 LTS」は「SSH」の「パスワード認証」が許可されていますが、「Ubuntu 20.04 LTS」の方は許可されていないので、「Ubuntu 20.04 LTS」の「仮想マシンVM:Virtual Machine)」にログインします。

「/etc/ssh/sshd_config」を編集していきます。

以下の4か所がyesになっていればOK。

sshd」サービスを再起動しておきます。

改めて、「SSH」接続を試して、無事、つながりました。

あとは、「VS Code」で「Ansible」の「Playbook」などを実行していけるかと。

次回は、「Ansible」の練習をしていけそうです。

毎度モヤモヤ感が半端ない…

今回はこのへんで。

 

NG集

ネットの情報を見てると、最新の「24.04 LTS」で不具合が多いと言う話が多かったので予想はしていたのだけど、

⇧ 上記サイトからダウンロード。

VirtualBox」で「仮想マシンVM:Virtual Machine)」を作成していくのだが、

⇧「推奨システム」の要件を満たすのが私のPCでは不可能なので、値は変えていきます。

起動でエラーなる。

『Vmwgfx seems to be running on an unsupported hypervisor』で検索すると、滅茶苦茶ヒットするんだが...

askubuntu.com