没有安装ansible的可以看下我们的上一篇安装ansible文章
首先我的ansible用户是deploy
我先再ansible 服务器里进入deploy用户
su - deploy
加载python3.6的虚拟环境
source /home/deploy/.py3-a2.5-env/bin/activate
加载ansible2.5版本
source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q
验证ansible-playbook加载效果
ansible-playbook --version
创建一个test_playbooks测试目录,搭建playbook框架
mkdir test_playbooks
cd test_playbooks
mkdir inventory
mkdir roles
cd inventory/
创建testenv文件
vi testenv
编写配置文件
[testservers]
test.example.com
[testservers:vars]
server_name=test.example.com
user=root
output=/root/test.txt
创建子任务测试任务
cd ..
cd roles/
mkdir testbox
cd testbox/
mkdir tasks
cd tasks
vi main.yml
建个在目标主机 打印一句话并保存到指定目录里
- name: Print server name and user to remote testbox
shell: "echo 'Currently {{ user }} is logining {{ server_name }}' > {{ output }}"
返回test_playbooks目录
cd ../../..
创建任务入口文件
vi deploy.yml
- hosts: "testservers"
gather_facts: true
remote_user: root
roles:
- testbox
创建deploy ssh本地密钥对,一路回车就好
ssh-keygen -t rsa
与目录服务器创建ssh免密钥登录,按下enter,然后输入密码
ssh-copy-id -i /home/deploy/.ssh/id_rsa.pub root@test.example.com
测试下是否可以免密钥登录
ssh root@test.example.com
如果可以不用输入密码则成功
回到ansible服务器的test_playbook目录
执行写好的任务
ansible-playbook -i inventory/testenv ./deploy.yml
然后就可以在目标主机上看到/root/text.txt出现
ansible模块任务介绍