从最佳实践开始使用Ansible
目标
对于对Ansible感兴趣,并且想要亲自使用Ansible进行服务器配置管理体验的人。
首先
本次活动我们将按照Ansible官方网站上公开的目录布局,进行实际的Ansible操作实践。
关于Ansible的最佳实践
请在实践之前先阅读下面的幻灯片。
现场操作
准备环境
-
- Virtual Box
- Vagrant
GitHub -> GitHub(一个代码托管平台)
虚拟环境建立
$ git clone https://github.com/yukihirai0505/ansible-best-practice-hands-on
$ cd ansible-best-practice-hands-on
$ vagrant up
在这里暂且。
ansible最佳实践-实操/httpd存储
我试着看一下里面的内容。
这次的形象
-
- ステージング
- プロダクション
尝试在每个环境中安装Nginx,并将简单的HTML文件显示出来。
尝试通过选项对本地主机进行配置管理。
关于库存的问题
以下的文件对应于库存文件。
-
- localhost
-
- stage
- production
写有关管理哪台服务器的文件。
在这里,我们将写下IP地址、主机名以及每个阶段的变量等内容。
关于Playbook
以下的文件相当于Playbook。
-
- site.yml
-
- fooapp.yml
-
- localhost.yml
- rolesディレクトリ配下
在这里我们将安装Nginx,并描述配置服务器,包括传输模板文件等。
关于命令
-
- ansible
-
- ansible-playbook
- ansible-galaxy
关于Ansible
ansible all -m ping
可以很容易地验证Ansible的运行行为。
有关ansible-playbook
可以在指定的库存中执行Playbook。
ansible-playbook -i [inventory] [playbook].yml
另外还可以执行干运行。
ansible-playbook -i [inventory] [playbook].yml --check
关于ansible-galaxy
如果你是Ansible的初学者,可以先从Ansible Galaxy开始尝试,根据一篇文章所说,阅读galaxy中的配置也可以作为学习ansible的一个途径。
关于模块
实际亲自尝试运行
在主机服务器上进行ansible配置。
首先,在执行ansible的服务器上进行ansible的安装和ssh的配置。
- ansibleのインストール
$ vagrant ssh host
vagrant@host$ wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
vagrant@host$ sudo rpm -Uvh epel-release-6-8.noarch.rpm
vagrant@host$ sudo yum -y install ansible
# ansible2系が入っているか確認
vagrant@host$ ansible --version
vagrant@host$ touch ~/.ssh/config
- sshの設定
Host stage
HostName 192.168.43.52
Host production
HostName 192.168.43.53
vagrant@host$ chmod 600 .ssh/config
vagrant@host$ ssh-keygen -t rsa
vagrant@host$ ssh-copy-id stage
# Enter yes,vagrant
vagrant@host$ ssh-copy-id production
# Enter yes,vagrant
现在可以在这个环境下运行ansile了。
接下来,在主机服务器上,将目录更改为 /var/www/html。
vagrant@host$ cd /var/www/html
你可以使用各自的Playbook。
为了舞台表演而设计
vagrant@host$ ansible-playbook -i stage site.yml
只需提供一种中文选项:
适用于生产线的
vagrant@host$ ansible-playbook -i production site.yml
通过访问各自的IP地址,您可以查看 index.html 的内容。
Host stage
HostName 192.168.43.52
Host production
HostName 192.168.43.53
在本地环境下执行
也可以对主机服务器进行配置管理。
首先,使用ansible-galaxy工具安装Java角色。
ansible-galaxy install -p ./roles geerlingguy.java
接下来执行适用于本地主机的playbook。
vagrant@host$ ansible-playbook -i localhost localhost.yml
我们实际上可以确认主机服务器上已经安装了Java。
java -version