安装
1、准备三台虚拟机
master:192.168.242.3----安装ansible
agent1:192.168.242.2
agent2:192.168.242.1
master:192.168.242.3----安装ansible
agent1:192.168.242.2
agent2:192.168.242.1
2、mster对agent无密钥登陆:
#ssh-keygen &&三个回车
# ssh-copy-id root@192.168.242.2 && 输入yes和密码
#ssh-keygen &&三个回车
# ssh-copy-id root@192.168.242.2 && 输入yes和密码
ps: ssh-keygen -t rsa #使用rsa加密,加密方式选 rsa|dsa均可以,默认dsa
3、安装ansible
看一下可不可以yum安装
# yum list | grep ansible
# yum install -y ansible
# yum list | grep ansible
# yum install -y ansible
# ansible --version
ansible 2.4.2.0
ansible 2.4.2.0
4、 添加ansible客户机组,命令:
#vim /etc/ansible/hosts
[test-servers]
10.0.0.21
10.0.0.22
[test-servers]
10.0.0.21
10.0.0.22
5、不用启动直接可以用
# ansible webservers -m command -a 'date'
-m mode:什么模块
command是模块
-a
-m mode:什么模块
command是模块
-a
nginx简单部署:
1、master上nginx安装测试(因为我需要nginx.conf)
#systemctl stop firewalld && setenforce 0
#yum install -y epel-release
#yum install -y nginx
#vim /etc/nginx/nginx.conf
修改:user root
root /root/index.html
#echo nocho > /root/index.html
#systemctl start nginx
#curl localhost
nocho
nginx测试成功
2、编写playbook
[root@four yaml]# pwd
/etc/ansible/yaml ----##我的yaml文件位置,可变
[root@four yaml]# cat nginx.yaml
---
- hosts: all
tasks:
- name: Extended Nginx ---##任务名
yum: name=epel-release state=present ---##调用的模块
- name: Install Nginx Package
yum: name=nginx state=present
- name: Access Path
copy: src=/root/index.html dest=/root/
- name: Copy Nginx.conf
template: src=/root/nginx.conf.j2 dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 validate='nginx -t -c %s'
notify:
- Restart Nginx Service
/etc/ansible/yaml ----##我的yaml文件位置,可变
[root@four yaml]# cat nginx.yaml
---
- hosts: all
tasks:
- name: Extended Nginx ---##任务名
yum: name=epel-release state=present ---##调用的模块
- name: Install Nginx Package
yum: name=nginx state=present
- name: Access Path
copy: src=/root/index.html dest=/root/
- name: Copy Nginx.conf
template: src=/root/nginx.conf.j2 dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 validate='nginx -t -c %s'
notify:
- Restart Nginx Service
handlers:
- name: Restart Nginx Service
service: name=nginx state=restarted
- name: Restart Nginx Service
service: name=nginx state=restarted
3、检查以下playbook的语法是否正确
# ansible-playbook -i /etc/ansible/hosts /etc/ansible/yaml/nginx.yaml --syntax-check
playbook: /etc/ansible/yaml/nginx.yaml
4、任务列表
# ansible-playbook -i /etc/ansible/hosts /etc/ansible/yaml/nginx.yaml --list-task
# ansible-playbook -i /etc/ansible/hosts /etc/ansible/yaml/nginx.yaml --list-task
5、执行任务的主机
# ansible-playbook -i /etc/ansible/hosts /etc/ansible/yaml/nginx.yaml --list-hosts
6、执行剧本
# ansible-playbook -i /etc/ansible/hosts /etc/ansible/yaml/nginx.yaml --list-hosts
6、执行剧本
# ansible-playbook -i /etc/ansible/hosts /etc/ansible/yaml/nginx.yaml
okokokokoklalalala,
okokokokoklalalala,