はじめに
2023/06/03 に、YouTube Live で「つまずき Ansible【Part37】Ansible Lightspeed を試してみる」という配信をしました。
つまずき Ansible 【Part37】Ansible Lightspeed を試してみる - connpass
タスクの name に自然言語で処理を書くと、AIがタスクの内容を提案してくれる Ansible Lightspeed が発表されました(前身はProject Wisdom)。
私のアカウントで、クローズドベータとして利用できるようになったので、試してみました。
動画
- 1:20 Ansible Ligthspeed とは
- 2:53 シンプルな例を試す
- 4:38 元ネタ表示機能
- 5:45 日本語は無理な様子
- 7:40 アンケートでいただいた試してみたこと
- 9:00 Play名を考慮してくれそう(その1)
- 18:50 ファクトは結構表示してくれる
- 20:50 VMデプロイあれこれ
- 21:56 Play名を考慮してくれそう(その2)
- 23:50 EC2をデプロイしたいが
- 28:08 クロージング
例
うまく候補が表示された例を、ひとつピックアップします。
--- - name: Deploy Azure VM hosts: all gather_facts: false vars: vm_config: vm_size: Standard_DS2_v2 name: ansibull-01 network_interfaces: - name: data-lake831 tasks: - name: Create VM using vm_config var
このようなタスク名 Create VM using vm_config var
を指定してエンターを押すと・・(動画 22:00頃)
# 略 - name: Create VM using vm_config var azure.azcollection.azure_rm_virtualmachine: resource_group: "{{ resource_group }}" name: "{{ vm_config.name }}" vm_size: "{{ vm_config.vm_size }}" admin_username: azureuser ssh_password_enabled: "{{ ssh_password_enabled }}" ssh_public_keys: - path: /home/ano-user/.ssh/authorized_keys key_data: "{{ key_data }}" network_interfaces: "{{ vm_config.network_interfaces }}" image: "{{ image }}"
このようなタスクが生成されました。vars
で定義してあるvm_config.name
などの変数を、正しい対応で使ってくれています。
なお、プレイの name
に Azure
を含めず Deploy VM
としたときは、nutanix.ncp.ntnx_vms
モジュールを使ったタスクが生成されました。プレイの name
も考慮してくれるような動きになりました。
[2023/06/06 追記] 日本語のタスク名
配信では日本語のタスクの name
はうまくできませんでしたが、後日のこちらの記事 を真似てみたところ、うまくできました。これはこれでコツがいるのかもしれません。
ただ、日本語と英語でははやり英語の方が精度が高そうです。以下の例では「アンインストール」をうまく解釈できなかった様子が伺えます。
tasks: - name: "nginxとfirewalldをアンインストールする" ansible.builtin.package: name: - nginx - firewalld state: present - name: Uninstall nginx and firewalld ansible.builtin.package: name: - nginx - firewalld state: absent
感想
プレイの name
を解釈してくれていそうなパターンを複数見れたのは良かったなと思いました。他にも address
と打つべきところ adress
というタイプミスしたらうまく候補が出なかったのも興味深かったです。
プレイもタスクもちゃんと name
を書こうという気持ちになりました。
まだベータ状態であり、私自身も試し始めて間もないので、活かしきれてない点は多々あるかと思います。うまく使いこなすには時間がかかりそうですが、今後も遊んでみようと思います。
ご視聴いただいた皆さん、ネタを頂いたみなさん、ありがとうございました!
関連記事
Red Hat、自然言語からAnsible Playbookコードを生成する「Ansible Lightspeed」発表。IBM WatsonのAIを利用 - Publickey
[Ansible] AI で Playbook を生成する Ansible Lightspeed のクローズドベータ申込みとお試し - てくなべ (tekunabe)
[2023/06/26 追記]
公式ブログによる解説