ansible自動化配置nginx
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を事前にコンパイルしてインストールし、起動スクリプトを構成し、プロファイルを構成します. 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
, 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