游牧者(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

结果

image.png
广告
将在 10 秒后关闭
bannerAds