ansible 2.7.1 快速开始

refer to 官方手册 https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

refer to 中文手册 http://www.ansible.com.cn/

refer to Ansible快速入门 http://getansible.com/

建议使用Redhat Linux 7.4

0.查看linux版本

cat /etc/redhat-release

1.安装ansible

yum install ansible -y

查看ansible版本 

2.更新/etc/ansible/hosts

vim /etc/ansible/hosts

(如果需要使用密码认证方式,添加host记录,例如

hk.lihuanhuan.net ansible_ssh_user=root ansible_ssh_pass='xxxx'

(如果需要使用密钥认证方式,添加host记录,例如

[group1]
hk.lihuanhuan.net
 

(如果需要给hosts文件加密,请参考如下流程:

refer to https://docs.ansible.com/ansible/latest/user_guide/vault.html?highlight=vault

#给hosts文件加密
ansible-vault encrypt /etc/ansible/hosts
#给hosts文件解密,文件将转换为明文
ansible-vault decrypt /etc/ansible/hosts

#查看加密文件
ansible-vault view hosts

#编辑加密文件
ansible-vault edit hosts


#使用加密后的hosts文件,交互式
ansible all -m ping --ask-vault-pass
ansible-playbook --ask-vault-pass site.yml

#使用加密后的hosts文件,加密密码存在dev-password文件中
ansible all -m ping --vault-password-file dev-password
ansible-playbook --vault-password-file dev-password site.yml
ansible-playbook site.yml --vault-password-file ~/.vault_pass.txt

3.更新/etc/ansible/ansible.cfg

# uncomment this to disable SSH key host checking
host_key_checking = False

4.执行你的第一条ansible命令

如果使用密码认证方式,通过以下方式连接target,例如

#如果使用密码认证方式,而且已经在hosts文件配置了正确的信息
#all  ansible hosts配置的的所有hostname
# -m 表示调用ansible的module
# ping 为ansible的一个module

ansible all -m ping

如果使用密钥认证方式,通过以下方式连接target即可,例如

#group1为已经配置的group名称,-u用于指定连接target的用户名,--private-key 指定私钥文件 
ansible group1 -m ping -u lihuanhuan80 --private-key /appvol/robin.private

5.使用ansible-playbook去部署一个tomcat,以下是project的结构。源代码请在这里下载https://github.com/ansible/ansible-examples/tree/master/tomcat-standalone 感谢Github上的朋友。


5.1 在/etc/ansible/hosts文件新增一个group

#ansible-vault edit hosts

#hosts文件新增部分,如果使用非root用户登陆,而且要切换到root,ansible_become_pass必须配置
[tomcat-servers]
hb.lihuanhuan.net ansible_ssh_user=root ansible_ssh_pass=password ansible_become_pass=password

5.2 在porject中site.yml配置成这样

---
# This playbook deploys a simple standalone Tomcat 7 server.

- hosts: tomcat-servers
  remote_user: root
  become: yes
  become_method: sudo

  roles:
    #- selinux
    - tomcat

5.3 在project中hosts配置成这样

[tomcat-servers]
hb.lihuanhuan.net

个人理解,site.yml作为ansible-playbook的入口文件,这里配置的hosts=tomcat-servers ,程序会去project的hosts文件中查找名为tomcat-servers的group和server。project中hosts文件配置的group和server要在ansible的master服务器安装目录中的/etc/ansible/hosts找到。

5.4 把修改好的ansible-playbook project上传到ansible master服务器/appvol/

5.5 在ansible的master服务器上执行ansible-playbook

ansible-playbook /appvol/tomcat-standalone/site.yml --ask-vault-pass

你会在服务器上看到执行的日志,类似下面的截图。

如果您喜欢我,可以通过微信请我喝果汁。

如果有疑问,可以留言或者发邮件给我 lhh_nj@163.com
原文地址:https://www.cnblogs.com/lihuanhuan/p/10612135.html