Ansible安装及实战

1.ansible简介
Ansible默认通过 SSH 协议管理机器,帮助自动化管理工作。安装Ansible之后,不需要启动或运行一个后台进程,或是添加一个数据库.只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的机器.在远程被管理的机器上,不需要安装运行任何软件,因此升级Ansible版本不会有太多问题。
2.ansible安装

$ sudo yum install epel-release -y
$ sudo yum install ansible –y

3.查看Ansible目录结构

$ rpm -ql ansible
配置文件目录:/etc/ansible/ 
执行文件目录:/usr/bin/ 
Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/ 
Help文档目录:/usr/share/doc/ansible-X.X.X/ 
Man文档目录:/usr/share/man/man1/

4.管理服务器Inventory文件
进入/etc/ansible编辑hosts文件,新增如下配置:

[jdk-nodes]
10.xx.xx.[1:100] ansible_ssh_port=22 ansible_ssh_pass=testcc       #定义一个IP范围1到100

5.生成秘钥
将在/home/wxt下生成id_rsa及id_rsa.pub

 ssh-keygen

6.向目标服务器分发秘钥
编写playbook脚本

---
- hosts: jdk-nodes
  remote_user: wxt
  tasks:
    - name: copy ssh
      authorized_key:
	    user: wxt
        key: "{{ lookup('file','/home/wxt/.ssh/id_rsa.pub') }}"	

检验语法是否正确

ansible-playbook ssh_push.yml --syntax-check

执行

ansible-playbook ssh_push.yml	

playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。值得注意的是playbook是通过YAML格式来进行描述定义的。

7.ping目标服务器
通过ping统一检查目标服务器ssh是否配置成功。

---
- hosts: jdk-nodes
  remote_user: uaren
  tasks:
    - name: test connection
      ping:
      remote_user: uaren

检验语法是否正确

ansible-playbook test_collect.yml --syntax-check

执行

ansible-playbook test_collect.yml	

8.ansible安装jdk

---
- hosts: jdk-nodes
  remote_user: uaren
  tasks:
    - name: copy jdk-8u162-linux-x64.tar.gz remote hosts
      copy: src=jdk-8u162-linux-x64.tar.gz dest=/usr/local/nlp/java
	- name: tar jdk-8u162-linux-x64.tar.gz
	  shell: chdir=/usr/local/nlp/java tar zxf jdk-8u162-linux-x64.tar.gz
	- name: delete old java_home in /etc/bashrc
	  become: yes
      become_user: root
      become_method: sudo
      lineinfile:
        dest: /etc/bashrc
        state: absent
        regexp: '^export JAVA_HOME='
      tags:
        - deleteexport JAVA_HOME=
	- name: /etc/bashrc config
	  become: yes
      become_user: root
      become_method: sudo
	  lineinfile:
         dest: /etc/bashrc
         regexp: '^export JAVA_HOME='
         insertafter: '^# vim:ts=4:sw=4'   
         line: 'export JAVA_HOME=/usr/local/nlp/java/jdk1.8.0_162'
      tags:
       - xxx
	- name: /etc/bashrc source
      shell: source /etc/bashrc
    - name: delete old java_home in /etc/profile
      become: yes
      become_user: root
      become_method: sudo
      lineinfile:
        dest: /etc/profile
        state: absent
        regexp: '^export JAVA_HOME='
      tags:
        - deleteexport JAVA_HOME=	
	- name: /etc/profile config
	  become: yes
      become_user: root
      become_method: sudo
	  lineinfile:
         dest: /etc/profile
         regexp: '^export JAVA_HOME='
         insertbefore: '^export PATH='   
         line: 'export JAVA_HOME=/usr/local/nlp/java/jdk1.8.0_162'
      tags:
       - xxx
	- name: /etc/profile source
      shell: source /etc/profile

检验语法是否正确

ansible-playbook jdk_install.yml --syntax-check

执行

ansible-playbook jdk_install.yml	
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值