在Vagrant上的Ubuntu 20.04上安装Ansible并启动Apache
首先
我以前一直认为如果能够熟练使用Ansible会很方便,最近有些时间所以在vagrant上搭建了一个Ansible环境。
首先,进行Ansible的基础安装。
创建一个合适的文件夹,在其中进行安装设置。
这次选择了ubuntu20.04。
vagrant init grokology/ubuntu20.04server64-base
将已经创建好的Vagrant文件的”192.168.33.10″行注释掉,以实现通过SSH终端连接。
vagrant up
我們將啟動虛擬環境
首先,為了將環境更新到最新狀態,
sudo apt update
sudo apt upgrade
执行。
顺便说一下,花了相当长的时间。我以为它停下来了。
终于到了安装Ansible的时候。
通过输入以下内容来安装Ansible。
sudo apt install ansible
インストール終了後バージョン等を確認
$ ansible --version
ansible 2.9.7
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/vagrant/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/vagrant/.local/lib/python3.8/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.8.2 (default, Mar 13 2020, 10:14:16) [GCC 9.3.0]
最初计划使用树莓派3。
sudo apt install python3-pip
我尝试了一下,但是无法识别Ansible命令,所以我使用apt来进行操作。
实际上,由于已经安装了相同版本,所以我将暂且认为这样就可以了。
将接下来的私钥文件用于在Windows上运行的vagrant,并将其复制到vagrant内部以更改权限。
cp /vagrant/.vagrant/machines/default/virtualbox/private_key /home/vagrant/
cd /home/vagrant/
chmod 600 private_key
在这里最初的时候
/vagrant/.vagrant/machines/default/virtualbox/private_key
当我设定了private_key的位置并执行Ansible命令,就像这样。
UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@ WARNING: UNPROTECTED PRIVATE KEY FILE!
@\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0777 for '/vagrant/.vagrant/machines/default/virtualbox/private_key' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"/vagrant/.vagrant/machines/default/virtualbox/private_key\": bad permissions\r\nvagrant@192.168.33.10: Permission denied (publickey,password).", "unreachable": true}
因为受到指责,所以我将其复制到可以在Ubuntu上更改权限的位置并进行了更改。
终于开始进行Ansible本体的配置。
首先进入Ansible目录
cd /etc/ansible/
在这里创建并保存hosts和playbook.yml文件。
主持人
[vagrant]
192.168.33.10
剧本.yml
---
- hosts: vagrant
remote_user: vagrant
tasks:
- name: install apache2
apt:
name: apache2
become: true
- name: apache2 is running
systemd:
state: started
name: apache2
這個地方我使用了https://kazuhira-r.hatenablog.com/entry/2019/11/27/004108的內容。
当在这里输入执行Ansible的命令时,处理将继续进行。
$ ansible-playbook -i hosts playbook.yml --private-key /home/vagrant/private_key
PLAY [vagrant] ***********************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************
ok: [192.168.33.10]
TASK [install apache2] ***********************************************************************************************************************
changed: [192.168.33.10]
TASK [apache2 is running] ************************************************************************************************************************
ok: [192.168.33.10]
PLAY RECAP ************************************************************************************************************************
192.168.33.10 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
当事情顺利结束后,请在浏览器上确认显示情况并进行结束。
http://192.168.33.10/
似乎 Ubuntu20 不再支持 Python2 系列,因此无法使用 Python 命令。
此外,pip 只剩下 pip3,不再有两种环境,这样操作起来也更顺心愉快。
我们到这里就结束吧。