ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ansible安装应用实例

2021-05-29 14:33:16  阅读:268  来源: 互联网

标签:实例 java elastic jdk tags ansible taishi 安装 name


ansible安装jdk并写入环境变量

    jdk除了包的安装,还需要写入环境变量

- name: Create taishi dir
  file: path={{ taishi_dir }} state=directory owner={{ taishi_user }} group={{ taishi_user }}
  tags: jdk

- name: visit old_jdk
  shell: rpm -qa | grep jdk
  register: jdk_result
  ignore_errors: True
  tags: jdk

- name: visit old_java
  shell: rpm -qa | grep java
  register: java_result
  ignore_errors: True
  tags: jdk

- name: uninstall old_jdk
  shell: rpm -qa | grep jdk | xargs rpm -e --nodeps
  when: jdk_result is succeeded
  tags: jdk

- name: uninstall old_java
  shell: rpm -qa | grep java | xargs rpm -e --nodeps
  when: jdk_result is succeeded

- name: Create new jdk dir
  file: path="{{ taishi_dir }}/jdk" state=directory owner={{ taishi_user }} group={{ taishi_user }}
  tags: jdk

- name: Copy jdkpackage to hosts
  copy: src=jdk-8u60-linux-x64.tar.gz dest=/tmp
  tags: jdk

- name: Install new jdk1.8 for hosts
  unarchive: src="/tmp/jdk-8u60-linux-x64.tar.gz" dest="{{ taishi_dir }}/jdk"  copy=no mode=0755
  tags: jdk


#使用lineinfile就不会重复在/etc/profile文件中不会重复写入path内容
- name: set env  
  lineinfile: dest=/etc/profile insertafter="{{item.position}}" line="{{item.value}}" state=present
  with_items:
    - {position: EOF, value: "export JAVA_HOME={{ taishi_dir }}/jdk/jdk1.8.0_60/"}
    - {position: EOF, value: "export PATH=$JAVA_HOME/bin:$PATH"}
  tags: jdk

#使用echo的shell命令的方式多次执行就会多次追加内容
- name: set env2
    shell: "echo 'export JAVA_HOME={{ taishi_dir }}/jdk/jdk1.8.0_60/' >> /etc/profile"

#执行java命令之前可以手动source最新的环境变量
- name: check java version with env
  shell: source /etc/profile && java -version
  tags: jdk

#执行java命令的时候可以使用java的全路径来调用
- name: check java version with fullpath
  shell: "{{ taishi_dir }}/jdk/jdk1.8.0_60/bin/java -version"
  tags: jdk
jdk.yml

   

 ansible生成elastic密码

      1.配置hosts

        [elastic]
       192.168.30.174      默认elastic组的第一个节点为master,其它节点为数据节点
       192.168.30.175
       192.168.30.176

    2.自动生成密码

       

    3.生成指定密码

    4.自动生成证书

    5.es多次生成密码

         1.还原config目录下的elasticsearch.keystore的文件

         2.删除es自动创建的索引,es会自动把用户信息存储到默认的索引中

           1.查看索引列表
              curl -u elastic:JmhE6E6RQrXopYSrQIQg http://127.0.0.1:9200/_cat/indices

           2.删除指定索引
              curl -XDELETE -u elastic:JmhE6E6RQrXopYSrQIQg http://127.0.0.1:9200/.security-7

             

            1.查看索引列表
             curl -u elastic:Transfar@2022 http://127.0.0.1:9200/_cat/indices
             curl -u elastic:Transfar@123 --insecure https://192.168.30.102:9200/_cat/indices
             curl -u elastic:Transfar@2022 --insecure https://instance:9200/_cat/indices

          2.删除指定索引
             curl -XDELETE -u elastic:Transfar@2022 http://instance:9200/.security-7
             curl -XDELETE --insecure -u elastic:Transfar@2022 https://instance:9200/.security-7

        3.es接口信息
            curl -u elastic:Transfar@2022 --insecure https://instance:9200/_cat/master
            curl -u elastic:Transfar@2022 --insecure https://instance:9200/_cat/nodes

       4.更新索引
          curl -u elastic:Transfar@123 --insecure -XPUT -H "Content-Type: application/json" https://192.168.30.102:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

      5.执行单个角色下所有的tasks 不管tasks/main.yml中的tasks定义不同的tags
        ansible-playbook -i hosts --tags elastic-master site.yml
       tags定义在site.yml中
      - hosts: elastic-master
      gather_facts: true
      roles:
        - { role: elastic-master, tags: 'elastic-master' }

     6.执行某个tags下的tasks集合,而不管tasks是否属于同一个角色
       ansible-playbook -i hosts --tags esca site.yml
       tags定义在tasks/main.yml中
      - name: "Start elastic cluster"
           shell: "nohup su - {{ taishi_user }} -c {{ taishi_dir }}/elastic/elasticsearch-7.8.1/bin/elasticsearch &"
       tags: startes

    7.在指定的文件中追加行
      - name: set esmaster hosts
      lineinfile: dest=/etc/hosts insertafter="{{item.position}}" line="{{item.value}}" state=present
      with_items:
        - {position: EOF, value: "{{ groups['elastic-master'][0] }} instance"}
     tags: jdk

 ansible安装es

         1.启动成功,但设置用户密码的时候出错

         

       2.启动失败(配置文件配置不合要求)

       [root@localhost ~]# ulimit -n 65535 && ulimit -u 4096 && su - admin -c /app/taishi/elastic/elasticsearch-7.8.1/bin/elasticsearch

       

     配置文件一定要按照下面的格式,一项配置都不能少。

cluster.name: es-cluster
node.name: node-174
cluster.initial_master_nodes: node-174
path.data: /home/admin/es-cluster/data
path.logs: /home/admin/es-cluster/logs
network.host: 0.0.0.0


discovery.seed_hosts: ['192.168.30.174']

xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /app/taishi/elastic/elasticsearch-7.8.1/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.keystore.path: /app/taishi/elastic/elasticsearch-7.8.1/config/certs/elastic-certificates.p12
View Code

   3.生成密码方式.在生成证书的时候默认用的域名就是instance.

       

   

 4.启动程序的时候带上环境变量

      ulimit -n 65535 &&  ulimit -u 4096 && su  - admin -c /app/taishi/elastic/elasticsearch-7.8.1/bin/elasticsearch

ansible拉取远程主机上的文件

    fetch模块从远端获取文件,默认将这些文件按照树型方式按主机名分类进行存储。如果需要按照自定义目录进行存储,需要设置自定义参数

    

 

      dest设置的路径最后带不带/,存储的结果都会不一样.

    

标签:实例,java,elastic,jdk,tags,ansible,taishi,安装,name
来源: https://www.cnblogs.com/yxh168/p/14813198.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有