游牧者(Windows环境)+ Ansible备忘录
简而言之
因为经常创建和销毁多个本地环境,所以希望能省去创建的工作。一直以来都对ansible很感兴趣,打算试一试。
环境
机器等 (jī qì
-
- windows 8.1(早く買い替えたい…)
- vagrant
使用盒子
- bento/amazonlinux-2
要做的事情
-
- 仮想サーバを2台起動(masterとweb)
-
- master→webへsshで繋げる。
- ・ansibleからhttpdをインストールしてブラウザから表示を確認する。
启动两个虚拟服务器。
请参考以下文章
根据上述文章的参考,编辑Vagrantfile。
1.编辑Vagrantfile
config.vm.define :master do |server|
server.vm.hostname = "master"
server.vm.network "private_network", ip: "192.168.33.10"
end
config.vm.define :web do |server|
server.vm.hostname = "web"
server.vm.network "private_network", ip: "192.168.33.11"
end
vm.box根据本次目的选择此选项。
config.vm.box = "bento/amazonlinux-2"
启动vagrant
vagrant up
掌握者→使用ssh连接到网络
为了学会使用Ansible,我会先参考以下文章并安装相关必需的内容。
请参阅以下文章。
1. 安装必要的内容
sudo yum -y install python-devel openssl-devel gcc git
sudo amazon-linux-extras install ansible2
在.ssh/config文件中添加服务器信息。
vim ~/.ssh/config
Host web
HostName 192.168.33.11
3. 制作钥匙
ssh-keygen -t rsa
4.更改密钥权限
chmod 600 ~/.ssh/config
5.鑰匙的副本
ssh-copy-id web
6.确认ssh连接情况(因为会要求输入密码,所以使用vagrant的密码)
ssh web
如果连接成功,将会出现下面的内容。
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
This system is built by the Bento project by Chef Software
More information can be found at https://github.com/chef/bento
使用Ansible安装httpd并在浏览器中显示
请参考这篇文章。
1. 编辑Ansible inventory文件。
sudo vim /etc/ansible/hosts
在底部追加一次
[client_node]
client_node01 ansible_ssh_host=192.168.33.11
[client_node:vars]
ansible_ssh_user=vagrant
ansible_ssh_private_key_file=/home/vagrant/.ssh/id_rsa
2. 编辑 Ansible hosts 文件
添加到[defaults]下面
inventory = /etc/ansible/hosts
3.制定playbook
- hosts: client_node
become: yes
tasks:
- name: install httpd
yum: name=httpd state=latest
- name: apache start / enable
service: name=httpd state=started enabled=yes
handlers:
- name: httpd restart
service: name=httpd state=restarted
执行ansible
ansible-playbook playbook.yml
虽然有人提醒了我,但我会像「我自己那种人」一样不去介意。从结果来看,似乎已经完成了,所以我会在浏览器上确认。
[vagrant@master ansible]$ ansible-playbook playbook.yml
PLAY [client_node] *****************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************
[WARNING]: Platform linux on host client_node01 is using the discovered Python interpreter at /usr/bin/python, but
future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
ok: [client_node01]
TASK [install httpd] ***************************************************************************************************
changed: [client_node01]
TASK [apache start / enable] *******************************************************************************************
changed: [client_node01]
PLAY RECAP *************************************************************************************************************
client_node01 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
结果