ansible自動化配置nginx

4044 ワード

1.ansibleの取り付け(1)2台の機器を用意し、それぞれIPは114.67.232.214、ホスト名centos 100 IPは114.67.233.22、ホスト名centos 101(2)はcentos 100にansibleをインストールする必要がある、yumインストールを直接使用する:yum install ansible(3)鍵認証を設定centos 100で操作:ssh-keygenssh-copy-id-i/root/.ssh/id_rsa.pub 114.67.233.22テスト成功:[root@centos100 ~]# ssh 114.67.233.22Last login: Mon Jul 9 17:36:24 2018 from 1.119.132.165Welcome to JCLOUD Elastic Compute Service[root@centos101 ~]# logoutConnection to 114.67.233.22 closed.(4)vim/etc/ansible/hosts [web]114.67.232.214114.67.233.22説明:このファイルに上記の内容を追加します.Webはホストグループの名前で、カスタマイズされています.次の2つのIPはグループ内のマシンIPvim/etc/ansible/ansibleです.cfghost_key_checking=Falseこの行のコメントをキャンセルします.(開く理由:システムを再インストールし、know_hostsに以前とは異なる鍵情報がある場合は、訂正されるまで鍵が一致しないエラー情報が提示されます.ansibleを使用する場合、know_hostsで初期化されていないテーブルがある場合は、Ansibleまたはタイミングでansibleを実行するときにkey情報の確認)
  • ######################################################################################################################1.tarcd nginx-1.8.1./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_moduleyum install-y pcre-devel openssl-devel gcc依存を解決するには、makemake installln-s/usr/local/nginx/sbin/nginx/usr/local/sbin/ソフト接続nginx-t構文エラーnginx起動nginxこのときnginxインストール完了(2)cd/etc/ansiblemkdir nginx_installcd nginx_installmkdir-p roles/{common,install}/{handlers,files,meta,tasks,templates,vars}説明:rolesディレクトリの下に2つのロールがあり、commonはいくつかの正確な操作であり、installはnginxをインストールする操作である.各ロールの下にはいくつかのディレクトリがあり、installはnginxをインストールする操作であり、各ロールの下にはいくつかのディレクトリがあり、handlersの下には変更が発生したときに実行する操作であり、通常は再構成ファイルで変更され、サービスを再起動します.filesはインストール時に使用するファイルです.metaは説明情報、役割依存などの情報です.tasksの中にはコアのプロファイルがあります.templatesは通常プロファイルを保存し、スクリプトなどのテンプレートファイルを起動します.varsの下には定義された変数があります.Playbook実戦-nginxインストール2(1)使用するファイルを事前に用意する必要があります.具体的には、1台のマシンでnginxを事前にコンパイルしてインストールし、起動スクリプトを構成し、プロファイルを構成します.
        ,     nginx    ,   /etc/ansible/nginx_install/roles/install/files   ,   nginx.tar.gz
    cd /usr/local
    tar czvf nginx.tar.gz --exclude "nginx.conf" --exclude "vhost"  nginx/
    mv nginx.tar.gz /etc/ansible/nginx_install/roles/install/files
        ,        /etc/ansible/nginx_install/roles/install/templates  
    cp nginx/conf/nginx.conf  /etc/ansible/nginx_install/roles/install/templates
    cp /etc/init.d/nginx  /etc/ansible/nginx_install/roles/install/templates/ (   )
    
    cd /etc/ansible/nginx_install/roles
      common tasks,nginx         
    vim ./common/task/main.yml
    - name: install initializtion require software
      yum: name="pcre-devel,oepnssl-devel,gcc"  state=installed
    ####################################################################################################install/roles/install/vars/main.ymlnginx_user: wwwnginx_port: 80nginx_basedir:/usr/local/nginx(2)まず、使用したすべてのドキュメントをターゲットマシンvim/etc/ansible/nginx_にコピーします.install/roles/install/tasks/copy.yml
  • name: Copy Nginx Softwarecopy: src=nginx.tar.gz dest=/tmp/nginx.tar.gz owner=root group=root
  • name: Uncompression Nginx Softwareshell: tar zxf/tmp/nginx.tar.gz -C/usr/local/
  • name: Copy Nginx Configtemplate: src=nginx.conf dest={{nginx_basedir}/conf/owner=root group=root################################################################################################################install/roles/install/tasks/install.yml
  • name: Create Nginx Useruser: name={{ nginx_user }} state=present createhome=no shell=/sbin/nologin
  • name: Start Nginx Serviceshell:/usr/local/nginx/sbin/nginx
  • name: Add Boot Start Nginx Serviceshell: chkconfig --level 345 nginx on
  • name: Delete Nginx compression filesshell: rm -fr/tmp/nginx.tar.gz##################################################################################yml copyとinstallをvim/etc/ansible/nginx_と呼び出しますinstall/roles/install/tasks/main.yml

  • include: copy.yml
  • include: install.ymlはこの2つのroles:commonとinstallで定義が完了しました.次に、エントリプロファイルvim/etc/ansible/nginx_を定義します.install/install.yml
  • hosts: centos101remote_user: rootgather_facts: Trueroles
  • common
  • install