
Ubuntu 18.04.1 VPS をセットアップするための Ansible Playbook を作成していますが、Python を確実にインストールできないという問題が発生しています。
apt -y update && apt -y install python
Ubuntu 18.04.1 には Python がインストールされていないため、モジュールで次のコマンドを使用する必要がありますraw
。
手動で ssh で接続したシェルでもこのエラーが発生しました。
root@ansible:~# apt -y update && apt -y install python
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://archive.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
17 packages can be upgraded. Run 'apt list --upgradable' to see them.
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
これは、Windows ホスト上の VirtualBox の仮想マシンです。
また、とsync
の間で使用したり、との間で次のようなことをしたりしてみましたが、たいてい失敗します。apt update
apt install
while fuser /var/lib/dpkg/lock >/dev/null 2>&1; do sync && sleep 1; done
update
install
これは、次の手順で構築されたシステムです。https://askubuntu.com/questions/946787/ubuntu-server-installation-with-root-only/1066033#1066033
答え1
Ubuntu 16.04+ は、私の記憶が正しければ、デフォルトで Python3 を搭載しており、デフォルトのインストールから Python2 は完全に削除されています。言い換えれば、機能する Python インタープリターは存在しますが、Ansible が探す場所にはありません。
変数を使用して、Ubuntu 16.04+ の場合は に設定することで、デフォルトの動作 (python
コマンドとして期待) をオーバーライドできます。ansible_python_interpreter
/usr/bin/python3
つまり、次のようになります。
ansible_python_interpreter: /usr/bin/python3
Ansible は現在、Python3 をほとんどの場合第一級オブジェクトとして扱うため、これはかなり安全な変更です。私は管理しているいくつかの Ubuntu 18.04 ボックスでこれを問題なく使用しています。